<SEC-DOCUMENT>0000851205-23-000004.txt : 20230216
<SEC-HEADER>0000851205-23-000004.hdr.sgml : 20230216
<ACCEPTANCE-DATETIME>20230216160717
ACCESSION NUMBER:		0000851205-23-000004
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		129
CONFORMED PERIOD OF REPORT:	20221231
FILED AS OF DATE:		20230216
DATE AS OF CHANGE:		20230216

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			COGNEX CORP
		CENTRAL INDEX KEY:			0000851205
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL INSTRUMENTS FOR MEASUREMENT, DISPLAY, AND CONTROL [3823]
		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:		23638580

	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-20221231.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version="1.0" ?><!--XBRL Document Created with Wdesk from Workiva--><!--Copyright 2023 Workiva--><!--r:4dc635fe-3454-40d2-97d6-b433e40829c4,g:67c3b2b1-ab2e-47dc-be12-bcd61ff87e88,d:d8333d090d7e467c8f0fde3d2520d2ed--><html xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns="http://www.w3.org/1999/xhtml" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:srt="http://fasb.org/srt/2022" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:cgnx="http://cognex.com/20221231" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:currency="http://xbrl.sec.gov/currency/2022" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:us-gaap="http://fasb.org/us-gaap/2022" xmlns:country="http://xbrl.sec.gov/country/2022" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cgnx-20221231</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:AmendmentFlag" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF8yLTEtMS0xLTk0ODUz_af010e15-4e66-4118-b172-923493ec833c">false</ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:DocumentFiscalYearFocus" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF80LTEtMS0xLTk0ODUz_a16d4ad4-17d4-452f-bf91-3488d914b5f4">2022</ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:DocumentFiscalPeriodFocus" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF81LTEtMS0xLTk0ODUz_ff1f2fdb-36d8-42c3-8747-8ab5566b6be1">FY</ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityCentralIndexKey" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF84LTEtMS0xLTk0ODUz_4742ad32-3d94-441b-bfcb-4e97c6552a94">0000851205</ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:CurrentFiscalYearEndDate" format="ixt:date-month-day" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF85LTEtMS0xLTk0ODUz_476fb7a2-8adf-4d2a-9fed-22e2851009dc">12/31</ix:nonNumeric><ix:nonFraction unitRef="shares" contextRef="i6d4b21bf8b104201a47980e6f38dcf81_I20230129" decimals="0" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF8xNy0yLTEtMS05NDg1Mw_33c79ff8-ecfb-4d85-90e3-f0832a15e040">172,536,238</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="iad994e02f63b40f6aeb532436b44712f_I20220703" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF8xOC0zLTEtMS05NDg1Mw_22e07b5f-5467-4124-8e7e-9dd6b6115997">7,520,015,752</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMi0xLTEtMS05NDg1Mw_68ea35c9-c282-4c03-bd8e-2661bf94d474">5,943</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMi0yLTEtMS05NDg1Mw_c01446cd-fcb9-48c3-84a3-b19182d4144a">2,206</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMi0zLTEtMS05NDg1Mw_d08c2535-211c-444f-af48-ac0fd79f12b6">981</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMy0xLTEtMS05NDg1Mw_fd90d5b4-717d-4cad-ae55-20440a228d08">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMy0yLTEtMS05NDg1Mw_285976e5-8ce0-4df5-ba8e-873907b60cc4">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMy0zLTEtMS05NDg1Mw_2a859f02-d64e-4ce7-83ba-0aac4ae6d554">&#8212;</ix:nonFraction><ix:nonNumeric contextRef="i2cc370dc4f124b889113b6ce72669f0f_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="id713b63307164ed9a4c966f8e78671b2_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06">P11Y</ix:nonNumeric><ix:nonNumeric contextRef="if27faab37b6a4f73863dff11fe969892_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="i38d8a560a08c414b9ba3a790eac39db8_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="i69bf83df0fde47b09eec084ef339f45a_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231" name="cgnx:ProductWarrantyPeriod" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2">P1Y</ix:nonNumeric><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzEtMS0xLTEtOTQ4NTM_d0c08359-9aec-4ef3-8453-769e1385b8e6">1,271,000</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzEtMi0xLTEtOTQ4NTM_0182ad7f-47ed-4556-9ade-f87cad77e42a">1,271,000</ix:nonFraction><ix:nonNumeric contextRef="i8adc22054b3246d7b38929fa21b8160a_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzMtMS0xLTEtOTQ4NTM_393a2130-c503-4b47-94f2-ec56a7be2122">2</ix:nonNumeric><ix:nonNumeric contextRef="i2cc370dc4f124b889113b6ce72669f0f_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzMtMi0xLTEtOTQ4NTM_39f62e67-1af7-4f12-aa05-26a9f57753ac">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="ib36ca5b3740f4f81844d10b264bc38af_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzQtMS0xLTEtOTQ4NTM_b3cfc031-548a-4ecd-8dd2-d2a8981f2957">5</ix:nonNumeric><ix:nonNumeric contextRef="i26d0aec8272843a1999a113af386b3aa_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzYtMS0xLTEtOTQ4NTM_f11ea14a-1c7d-46d5-b76e-60575d9cdb82">2</ix:nonNumeric><ix:nonNumeric contextRef="ia490e41a796b4535a8b324dc09089a07_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzctMS0xLTEtOTQ4NTM_98a2693a-79f3-4d00-9a8e-9421d102d6b7">5</ix:nonNumeric><ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="cgnx:MaximumInvestmentOfCompanyInPartnership" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzgtMS0xLTEtOTQ4NTM_160b9ce0-260f-4a80-a772-6e77d16e6f04">5</ix:nonFraction><ix:nonNumeric contextRef="id713b63307164ed9a4c966f8e78671b2_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzEtMS0xLTEtOTQ4NTM_f7403f34-8925-4640-8df5-160d4b357e70">11</ix:nonNumeric><ix:nonNumeric contextRef="i38d8a560a08c414b9ba3a790eac39db8_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzItMS0xLTEtOTQ4NTM_7ab4a6f6-ea92-4e68-a531-90c837eaa6ea">5</ix:nonNumeric><ix:nonNumeric contextRef="if27faab37b6a4f73863dff11fe969892_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzMtMS0xLTEtOTQ4NTM_f55fd4ab-275d-4345-b406-181fa44f0f05">5</ix:nonNumeric><ix:nonNumeric contextRef="i69bf83df0fde47b09eec084ef339f45a_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzQtMS0xLTEtOTQ4NTM_7d99abf6-dfcb-41bc-9ee3-2181ecca78e6">3</ix:nonNumeric><ix:nonNumeric contextRef="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231" name="cgnx:ProductWarrantyPeriod" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpiNjAwYjY1ODkzODk0Njg0ODBjNmUzNGExODlhMGNkYS90YWJsZXJhbmdlOmI2MDBiNjU4OTM4OTQ2ODQ4MGM2ZTM0YTE4OWEwY2RhXzEtMS0xLTEtOTQ4NTM_877b4d63-7a30-4f58-8f58-8ef4698fc936">1</ix:nonNumeric><ix:nonNumeric contextRef="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTo1MmE5NDRmMDIyYjM0MGI2YmFjMTVmMTU3NGMxMmU4NS90YWJsZXJhbmdlOjUyYTk0NGYwMjJiMzQwYjZiYWMxNWYxNTc0YzEyZTg1XzEtMS0xLTEtOTQ4NTM_7a09d676-b9c7-46ce-a94a-08aa8940fc39">30</ix:nonNumeric><ix:nonNumeric contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" name="us-gaap:OperatingLeaseIncomeComprehensiveIncomeExtensibleList" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyMDk0NjI3OTE2NzE3_f7c0adc1-fff6-4724-8df6-067e74b7d592">http://fasb.org/us-gaap/2022#OperatingIncomeLoss</ix:nonNumeric><ix:nonNumeric contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628" name="us-gaap:ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEyMDk0NjI3OTEyNTM5_b5a3a977-f818-42cc-9d87-d8c18828a4f9">http://fasb.org/us-gaap/2022#ImpairmentOfIntangibleAssetsExcludingGoodwill</ix:nonNumeric><ix:nonNumeric contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" name="us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec">http://fasb.org/us-gaap/2022#OtherAssetsNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="i0a741b855258479e8feae873870a21fe_I20211231" name="us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00">http://fasb.org/us-gaap/2022#OtherAssetsNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="i0a741b855258479e8feae873870a21fe_I20211231" name="us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2">http://fasb.org/us-gaap/2022#OtherLiabilitiesNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" name="us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c">http://fasb.org/us-gaap/2022#OtherLiabilitiesNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="i9e24c340f95c4cd6bddcd7165f8eafc2_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQxOQ_c6e18e1b-cdd3-47f6-b8c9-e6aa92ec6c90">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="i762eecb173ad44d396bdee4ddaca9d6f_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTUyMw_6d2dc99c-b10e-466b-8589-3aaaaf893c81">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="ic31de56410a94a78b80c1080c8954a0a_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU3NA_94a4b7d7-3177-48cc-8502-c9b251159bed">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="i394340cf869a431da92e0d5b7725e378_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU1Mg_549c1e4c-b873-4d43-b5af-c44d64bbde49">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="i01f90d958a8b4a06b203557212df7602_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU3MQ_059c1591-f5c2-4f6e-9f51-65b36f7301c1">P3Y</ix:nonNumeric><ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzUvZnJhZzpkZWI0NjNiNWVjNzY0NmU5OTMzOTk1OWUwOTIzNTNmYy90YWJsZTowNjY3MTBjMzkwYTI0MzA4YjIyZTI2NTlmNTZhNDdlNS90YWJsZXJhbmdlOjA2NjcxMGMzOTBhMjQzMDhiMjJlMjY1OWY1NmE0N2U1XzEtMS0xLTEtOTQ4NTM_fb70165e-0d49-4ea5-8535-df12e81c0171">50</ix:nonFraction><ix:nonFraction unitRef="segment" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTAvZnJhZzoyMmM5OTUyODRmMTY0NDQ3YjM3ZDM2ZWI4OWU1M2QwMC90ZXh0cmVnaW9uOjIyYzk5NTI4NGYxNjQ0NDdiMzdkMzZlYjg5ZTUzZDAwXzMw_c65179d0-0aa0-4b05-a4ed-db89faeb5052">one</ix:nonFraction></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cgnx-20221231.xsd"></link:schemaRef></ix:references><ix:resources><xbrli:context id="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"><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="iad994e02f63b40f6aeb532436b44712f_I20220703"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-07-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:context id="i6d4b21bf8b104201a47980e6f38dcf81_I20230129"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-01-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:context id="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><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:context id="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"><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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"><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="i0a741b855258479e8feae873870a21fe_I20211231"><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="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i009bdd105744470f92f9842dbdccb264_I20191231"><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="i8b9f9b0cca6842aea084f5a2e15e878e_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i4c91f0f7ed80453ab08299b62282377f_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i8902887729504b498026f2d195bc6171_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ideca493651a94cfd9ac93831dacc0feb_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i6a9e2d8b39044a5da470cd71a20e96d9_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i37aa967d9b614574b60bf8744e6aa32d_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i2da618064e304974bd1bb8c916268bb4_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia9112897e9444fd39d5b0856d18ea54f_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iad6f5aa41caf46e288e81930ea0abb6b_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibae6b9b3c6ef413db976bc670eab9f6f_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i286bf008d86648e2af5b7cab93deaa88_I20211231"><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="i07f860f3aace482bae8724cb64ea7ba0_I20211231"><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="i425536f7ac9649f4b809e9472268e109_I20211231"><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="ifbb03b23bd884f0b97dde49ac3a7aba3_I20211231"><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="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231"><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="ie1e2221b2ffb438484820462f94b5dab_D20220101-20221231"><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="i295a746960af462daa557f4bd0a773d4_D20220101-20221231"><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="i2fb26adbfc8148299f6f7d6ee49b7fe2_I20221231"><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="i1178be5f70604688adcb636c8cbedf0c_I20221231"><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="i822bc252196244cca8220d4e49c25314_I20221231"><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="i2897666478444bcd81e42d318b14859a_I20221231"><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="ifa7f1aaa09574c4d9c4e019d191a823f_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iee589a12fbf244359633a5838d775a60_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2cc370dc4f124b889113b6ce72669f0f_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifb77d360cfbf4d1cbc02bb15f3155617_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="id713b63307164ed9a4c966f8e78671b2_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="i26a15cd120ad42108ce81ed3c8d47990_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="if27faab37b6a4f73863dff11fe969892_D20220101-20221231"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</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="i015d343516f34dd589537e0a5a7019d2_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i38d8a560a08c414b9ba3a790eac39db8_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i01ed603468da4f2c954af228989e2960_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i69bf83df0fde47b09eec084ef339f45a_D20220101-20221231"><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:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</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="i565941fba8af4a21ac95304dd4e544b6_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="id0ea9f117fff4c63a23c02536f451fdd_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231"><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>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231"><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>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i8adc22054b3246d7b38929fa21b8160a_D20220101-20221231"><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><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</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="ib36ca5b3740f4f81844d10b264bc38af_D20220101-20221231"><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><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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="i26d0aec8272843a1999a113af386b3aa_D20220101-20221231"><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:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia490e41a796b4535a8b324dc09089a07_D20220101-20221231"><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><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</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:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:context id="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i869877af7504471eb26d50c3caf7a346_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i64aa48a0b0ae445298efb767e3fda50c_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if60370d1989c45a9a5f65c6069b83bf0_I20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3528e37801244544af9d193380101650_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i42d6f375c3f7421b82f634793c07bb5a_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i60011d84efde475c8588eb23faee3402_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i9634a0ff62a64c7c97fb012d5f04f764_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i76b31b3c521141c99c9efed5974a22bb_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie688266910e6494fa1c1ad7173ab67cb_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i74c78e40a8d843199a11606ff8e39c0f_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib992952d9d974d5ea61d843c4d3dfe6b_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i913eccf532734d7885578917cd746347_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i749ddfecc38f475192a0e44188c51783_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie84fe8bb8f1b415198a5814473e65315_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if544a4fb4bc449acb2b6985e0160dd9b_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i8d0dc458e0284c9884a277b3b48a582d_I20221231"><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><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic1ab971bdb29482b926eebe8fb19cbad_I20221231"><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><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i605d537deee54d9cbba484cacefee561_I20221231"><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">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia45e4f4961e445ffb0f55366e7d99672_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib040dc3743ed46ea90055e84346f0443_I20221231"><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:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231"><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><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i96505b0dd0934b6eb089bee13b990fbd_I20221231"><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><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i2421b53df67d48c08bb9749e9494b799_I20221231"><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><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6e272a23bb514c139f6b134454ffaeee_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ice8f86701a48433090de5a2b0912eebc_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i84b7d2603a2e4a02912247cf825c6379_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5f0394f5d2ab41368c68fe84b64e89a8_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i847049a23e58411caaf58e118c4ad138_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0495920d2da04898b12b2c82d77310aa_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i39f965f20d5f4868bf1dac738b98ae6d_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i46dbc724c2374c85aee350ae4aabbf7a_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic0b2e605af7547a9a85dde4ac9575e36_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i63bdb8bcaf6c45c1a6c88354e1c3ca86_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib83d19a4b43e47ef8cd7ecb03f760ec8_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie7a93f183b304d60ab4f100858cac07a_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i4e7d87a496d44de2879567339065aa1c_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i42db3fa11317411fa84706594979672a_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0d12b535f83e4ceb92e3ecc1ce3fbe76_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LiabilityForCatastropheClaimsByCatastrophicEventAxis">us-gaap:DamageFromFireExplosionOrOtherHazardMember</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="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit><xbrli:context id="ib3c018963bbf478b803bd0dd571dd451_D20211201-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifd68f7dfd0b24e8a821f44e87cfc53eb_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i8428a5c435e443179e4f2794758325f8_I20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5dd4f9f80b354a32b572aaa1f2285f17_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic3b49e8ab0bb42d8aadf3956795e5896_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i2d09a9ae0d9f4bc0b5bc26258923e52e_D20220101-20221231"><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>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6f141c1c8d6049f2b30349071c15c24e_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i8bab6017cb6946c499661bc2de073401_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3e19d5ac14304bb6ba3db1840e190253_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="icf4836dc41804690a3bfeae1104c6bf1_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i2aad6cd17e034caca4cc804fad03323b_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic4f35afad63948a098933637d250b644_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic495a3bd530f4ebca6eb231ec7e6472d_I20221207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i33354f9f10e947f0bbdfd51008fc6673_D20221207-20221207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-12-07</xbrli:startDate><xbrli:endDate>2022-12-07</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i6b6333f398cb446f874831b0a7ce430b_I20200526"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:DistributionNetworksAndCustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie67d26e226f842f78def61df0513f4d1_D20200330-20200628"><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><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="idada75d878da464ea026b4a203cbcb10_D20200330-20200628"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="if6cae797bb3e4fd2861d574e8b857954_D20200330-20200628"><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="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="if1ff5906f4734040992a6b748f42d812_I20200526"><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="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i69142dd171a34505a0db9a07131e8fd5_I20200628"><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="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i81afe5dc608943d5bc97a00174870022_D20200330-20200628"><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="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-03-30</xbrli:startDate><xbrli:endDate>2020-06-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231"><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="i7ecee748a7894aa6a34f131488958cd1_I20221231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="eur"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:context id="iab989b088adc40f397c936be994f0791_I20211231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie9c13de570644705af8147a91ba02f2e_I20221231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="mxn"><xbrli:measure>iso4217:MXN</xbrli:measure></xbrli:unit><xbrli:context id="iba6ff5ea086646528fb3be8a7fc8d97a_I20211231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1988c41f6e6149c3a832fe97087a0a7d_I20221231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="cny"><xbrli:measure>iso4217:CNY</xbrli:measure></xbrli:unit><xbrli:context id="i7ad598b1eccf4536af708abf2a363022_I20211231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i98df32958b27455ca343eefe9e81c798_I20221231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="jpy"><xbrli:measure>iso4217:JPY</xbrli:measure></xbrli:unit><xbrli:context id="icffc050944dd416487d7e4ecc04e965f_I20211231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib798cddce68d41218df3982eeea19bd1_I20221231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="huf"><xbrli:measure>iso4217:HUF</xbrli:measure></xbrli:unit><xbrli:context id="ic1a57166d0ca4d52be74fad8e241edf8_I20211231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i587de7e154cd4fcbbd086d02ae014d98_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="gbp"><xbrli:measure>iso4217:GBP</xbrli:measure></xbrli:unit><xbrli:context id="i49e51c3d3b624282bd5f887efb5825c4_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i21885da1c6cc488cb5c733d3f6f8cb47_I20221231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="cad"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit><xbrli:context id="i344daace626040eab0b599ffda6fa09f_I20211231"><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><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i2c036298f54845b2ab2a5600c55fdddd_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="chf"><xbrli:measure>iso4217:CHF</xbrli:measure></xbrli:unit><xbrli:context id="i2111da417047432fb42541c6d0d9488e_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i20009c9acfef4520a2b96da0be7ba062_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i68b5dd94706b4891befcd809653efdc4_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i18f2b093d8ef4faeb9106cba76769131_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia0409d6ec51840b99360b72efdabca9b_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib70b837829b5456a899f0f811c0f555d_D20220101-20221231"><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="iae85366661da4de081ce1375ed5e731e_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib9e2b52ed5bb45ef8c66a470bb6a342a_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i81c26265146a4e0cabd3a5ad1dc520f4_D20220101-20221231"><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="i81e4d0ae1cdb4710abb92bad9ac6186e_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie55ae60220f64f2a9333aff7cb5e7e79_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifacc8a191ed34cc3956d7cb3c18bfb50_D20220101-20221231"><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="iad4f830115f54196885c8808f5f26002_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia5f10baf3e6e431791d90b042d2b7dbe_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="id9705c408ea24703bb700064bc764cbb_D20220101-20221231"><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="i1d373b49f6174306934e3595c281e1e1_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia901fbb0e0df41bdab322f5b54ac1bad_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i18aac435bfc44c8d91524b6f7ac4c4bd_D20220101-20221231"><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="i9b83fa1334a04a0a9f161d83664e05ad_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="idc7cf366ab9e4fc58b28582ef840dcbf_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibdd9b5e3e33e412b94c27b42dbaf106f_D20220101-20221231"><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="i52080a684e8546c28f54f8515153e8bc_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i840dd08d66f74017901da8e43d8c6597_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib921dcc1cc8d4e88a94ac95519191beb_I20160427"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2016-04-27</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6d16014c79974e6fb04ffdb4c2528fbe_I20180425"><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="i7dd30073d67c43e2812004d92b58a950_I20160428"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2016-04-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="vote"><xbrli:measure>cgnx:Vote</xbrli:measure></xbrli:unit><xbrli:context id="ia3238462e92a44c0ae2e712757ed9221_I20181029"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-10-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie6281c7cdeee4c578f9ad7920151d770_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i20998dd8746d49b29fd688382c97aeb7_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifab0fd91112c44ebacbc15ea89678db9_I20200312"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap: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="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i1c6c593e915b44a68ec713b3fbb6f688_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap: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="ie6e2d81d493141e893a1652480ab4ceb_I20220303"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap: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="i60d41a5c281445d585b275a0175e25d8_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap: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="i242da384c8724307bae1667f3b953759_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i018c267db8b54cdfacef801a78c54b1c_D20200101-20200927"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-09-27</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifea9b05d219041a59056b8419ba26427_D20200928-20211003"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-09-28</xbrli:startDate><xbrli:endDate>2021-10-03</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i59d6aaa50cca4cfc8c89677ea2083144_D20211004-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-10-04</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifeda0162266f40cd80c621dc7f7da27c_D20221003-20221231"><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>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iaa0536bb7dff46ebb738c081718a9e47_D20200928-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-09-28</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib4f96f1570614880a47ab7de0dda2e5c_D20201228-20201228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-12-28</xbrli:startDate><xbrli:endDate>2020-12-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i22b0d598b4fe4da1a5dd6844d5ee95d2_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i9e24c340f95c4cd6bddcd7165f8eafc2_D20220101-20221231"><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: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="i70d17755323542f395648f6e1a2b02ef_D20220101-20221231"><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: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="id4860aff35104dc9a6211278167eb085_D20220101-20221231"><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="i762eecb173ad44d396bdee4ddaca9d6f_D20220101-20221231"><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: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="i394340cf869a431da92e0d5b7725e378_D20220101-20221231"><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: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="ic31de56410a94a78b80c1080c8954a0a_D20220101-20221231"><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: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="i01f90d958a8b4a06b203557212df7602_D20220101-20221231"><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: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="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib5f16cd1416c489a93f58f559fee5607_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"><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>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i49f359f65be049c7a1f584ac2826c227_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="idb41a0641d09484fbb0e795616ffd333_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i67dcdda7132f4c88a2876592c4fa2161_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i45d73e790e074e1aa9cf9bb5112efe60_D20220101-20221231"><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="i51307a0012ee4d178b5c962dbfad699c_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"><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="i6cb0c6ba9c924090b591e3c9734f0d98_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iec52b2002cc947d3a004109ad8cf70d7_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iecc601f5f32b49d286f9088c84383e7b_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="group"><xbrli:measure>cgnx:group</xbrli:measure></xbrli:unit><xbrli:context id="ic2ae8f77de9b4c799265cfb17a22c13f_D20220101-20221231"><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="i26f0a2662e014a07bed517edfdabf032_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ieaf5e8110105465bbdcd174be6c7c3c7_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="icbcf6bf0255a43d490f7a609261ad0d9_D20220101-20221231"><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="i5c36aa17c9c346899dd928d5f7b29ba0_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i59acadfa63d64b228e29c41c5b239bb3_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i5a430819d9be410f96a87b715ae593a0_D20220101-20221231"><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="i8ced57d781a744e6b8adea75821d589e_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i7ef3fe8205994c6fa8c7d6dced93ab94_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibc0be7986f054a1eaa3d2887a5e677b1_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</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="i4526d1f7d6a24522bb915ff66995bb84_D20220101-20221231"><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>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i2cdf322ae13e4b169074cb9700a7529c_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:KP</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</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="i45af88e9e3d940d4a2e79f5bddd71867_D20220101-20221231"><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>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i9129c87dd0e949fb969ceab36fc702ab_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i883c5601d8c74a2f9beffe621ca1879d_I20221231"><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>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic97ddb7e41b740f594ea9c53355b616f_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i780814879ecc43d5993029565f7273f9_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">cgnx:StateResearchAndExperimentationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ibc9067130ed84e849433c76631b763ed_D20220101-20221231"><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="ied180d64cab3406b839f2c4087ae0020_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie3c045c9713b435f8160b9ecf1299044_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia4f52443268d461da36b2c2dfbdecdb5_D20220101-20221231"><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="ia9cbff9664cb4e56bc444e7febb27086_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i448d9902f4f248c2925c3342dcbdecf7_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i422f78304faf4c55ad914f8bf630dca4_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib7ef6e080e01401eb22ca2d2352c1475_D20220101-20221231"><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="i71d263f5bcc8449590269860ead6af02_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="segment"><xbrli:measure>cgnx:Segment</xbrli:measure></xbrli:unit><xbrli:context id="if33ecec5c8144a8c966621960cbb84e0_D20220101-20221231"><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="if9c291a1b7154cf0b03d68e4559fcfcb_D20220101-20221231"><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="i0cd7fb4c2acb452f822e36908fbcacff_I20221231"><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="iacacf3e6cbeb43e58c59d7fde4d9d9fb_I20221231"><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="if01274f14e124fb7b344e0b335d49b2b_I20221231"><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="i780e30c3beb447ec962def693c363e3d_I20221231"><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="i736bad4dad6944eca4b443a7133c8509_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i7806244a633e43888a9095b38d705253_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i760aa1a4efe3426894eb40a9729d6e10_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="idb390063cc074bcbba90cb9e46f79d2f_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib1b4629e786947a1a19577acecb99a73_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5f7d11e3ffad4c89badd6634c0960055_I20211231"><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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib6f636e14b00439c8df741688b096e76_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ib542cb5ce63642f7bb269e702188ded4_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="icc5e47429c0d413b88d2ad52922c8590_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ia44a70ef129441b9887bde869acad17d_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id1a27eb26028461e87485e9119c27fc0_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i433bf20d7ba54aa18508727462fdc63d_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ie8ba94c197bd41f0b3b33d4398e5935b_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</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="i44288c37097d4942bf6c7e2b92fcd809_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iede40299fb3d4337914719e64abf17cf_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="id092db34af2242f3b85505708b3165d5_D20210101-20211231"><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:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i843c8ec204cd46e583da828b478cc847_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</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="i22e0abbde5ec49e188c6fb263f21bf76_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="id9b95c2f672d4c6bbd31953247fe1f51_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-10-16</xbrli:startDate><xbrli:endDate>2019-10-16</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="iba4bd73731dc4f07bb9f0ef132d075a2_D20200928-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-09-28</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i4b5f6ecdd9df4630b3d91537e2ac5fc6_I20191016"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-10-16</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic5bb8208f5754b4ebf3c9e59746629a5_D20220607-20220607"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-06-07</xbrli:startDate><xbrli:endDate>2022-06-07</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i94b0adcbc2804c19bee8fa928a2fd7bd_D20220101-20221002"><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:unit id="employees"><xbrli:measure>cgnx:Employees</xbrli:measure></xbrli:unit><xbrli:context id="ie32ebedb57974f7ea1a721d7abd8efff_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</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="i3a766c86adf146bb876cab5893f555a7_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</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="ie65ef75b834449cb92d44e451af3b68f_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="icfc3fa7a278e49c2bb0506f47b41decd_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i3267ddf6eeb345028e6c64305107f057_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</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="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</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="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</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="i80e9ad4ee7a64dd1baa78b63dba84935_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="id787c23f289843789074e08d2171a18f_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i6a523bb16ddb45efaf8e76c8b0927ea1_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i8e050d2b1282473eb9707ece03c779f0_I20200526"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i600b8f977640419eb1675e17636d9ca8_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i42ff3e178de64a8195007ed9f4abd8fe_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i4e530fea3f1c4da69ebde9dab9a343ad_D20200101-20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ia1e2784fdde844afa0ab2507951775c2_I20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="if0c845f3557243618541b6ef4cdd2295_I20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ibb076eea4f334a8bbfc7c968502e806b_I20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i330fd257bfc64e1b88e79d165f517fe8_I20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i486e59888ae249dd8626fcf8f9b0160b_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ibf61588c7728470eacd9c2a10751c46d_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i5d52417344c14c29bbccd5d541a4024e_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ie9018d36cd394bc280df55a11358c66e_D20210101-20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i5e7e9c89e41d4792973df7578c9e9544_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5f53ad11b6ee4531bc73dec57db7714e_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i12348e9eef654011a546d0ae93a4d600_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i96a61c89495a490db9c8b066f5466ae4_I20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i703a3c7e139a4f648b75f2cca1ababa7_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</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="i2a9a0a4058bb4a49b5c5f5e117d80933_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</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="i1c136c9b24e2498a93308cad0ee1c3ae_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</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="iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</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="i3a7e6e13bdd3458bb1087c48776d8cac_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i49730dd44e964a35b86a2b1cd195f392_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ib05d86b5f147419d8cbeecde9b3a99dd_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1e7d9d33dca5421bbb53ae9c4825ee6d_I20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i02cdf9af3e804fda94a3d434209cdf3b_I20230216"><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>2023-02-16</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i079eedc5611e42aa9f7b8b809207e9b9_I20211231"><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="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231"><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="ic0646d282864416d93da63cfb616a046_I20221231"><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="i1ca0ca0692cf4818872b66cf958695b4_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="if4d1e32d070c424fb97dbbaf7592a5df_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i17153e64a544469680440c49ceeca9d3_I20211231"><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="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231"><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="ib6c2a40fe85c4fafa0ee0ac6d1deade0_I20221231"><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="i24861a7c8fcf4ee3aed146ba4412408b_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i96652bcfac584bada7a427c102168851_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="ifc93b5f0ff4a4f40829b8e4e132d3ca2_I20211231"><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="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231"><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="i32fb706d4a674c1fbcc3266ad01e02de_I20221231"><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="ib565d1145cb04bb3afb6b2a92a881195_I20201231"><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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231"><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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="i62200600a0034404accdb4a8fb7ec6dc_I20191231"><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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231"><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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtNS0xLTEtOTQ4NTM_6a9764f9-eb8c-4325-85b1-672921555b0d id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMS0xLTEtOTQ4NTM_71ac4f79-0b47-4b1c-9203-cf27881a3c02 id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMy0xLTEtOTQ4NTM_28a70386-0689-43c3-9d6a-e7fb85b1e3ce" linkRole="http://www.xbrl.org/2003/role/link" toRefs="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93" order="1"></ix:relationship></ix:resources></ix:header></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_1"></div><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:DocumentType" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYw_840daf1d-f265-40b3-9b23-fbb508262b17">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY0_128c79bb-f345-4a58-bf41-6405564ea4c4">&#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18yMTQ_6a5d852b-a78c-42b9-b541-6b36e5827041">December 31, 2022</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY1_6b7e7da4-0fce-49c7-aa8f-c9c6c0bb29c3">&#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityFileNumber" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDU3_220a3e8f-872b-43e7-aa08-0442db32af91">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityRegistrantName" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYx_0b54db36-8bbb-466a-8c9b-212a56e1f246">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><td style="width:13.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:136.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:252.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:85.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:13.75pt"></td><td style="width:1.0pt"></td></tr><tr style="height:12pt"><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%"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NTgyNDRiNDE0YTMyNDVjYjkyOWE3NTgwNjE5YTYwYWQvdGFibGVyYW5nZTo1ODI0NGI0MTRhMzI0NWNiOTI5YTc1ODA2MTlhNjBhZF8wLTEtMS0xLTk0ODUz_53ce3be0-1fa5-45f8-a102-2105dc14d1d9">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityTaxIdentificationNumber" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NTgyNDRiNDE0YTMyNDVjYjkyOWE3NTgwNjE5YTYwYWQvdGFibGVyYW5nZTo1ODI0NGI0MTRhMzI0NWNiOTI5YTc1ODA2MTlhNjBhZF8wLTMtMS0xLTk0ODUz_ff374c51-3202-4076-8c8b-c2cc84153a72">04-2713778</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:20pt"><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-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"></td></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityAddressAddressLine1" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY3_96518920-ddf8-4592-bc33-cf730c019cb3">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityAddressCityOrTown" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDU4_3f82d385-0cf8-4024-b02e-1dccc2e4dab7">Natick</ix:nonNumeric>,&#160;<ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY2_c09f4b4f-a13d-4495-8670-f2412472f700">Massachusetts</ix:nonNumeric>&#160;<ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityAddressPostalZipCode" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYy_c7b10e5e-5a5d-4978-8bc0-579588f1eed5">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:CityAreaCode" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYz_d59327b2-de65-4734-b1d8-005f6282514e">508</ix:nonNumeric>) <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:LocalPhoneNumber" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDU5_a1d25517-0419-4624-9783-1baba2d5f7d0">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><td style="width:78.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:85.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:174.25pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:85.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:78.25pt"></td><td style="width:1.0pt"></td></tr><tr style="height:21pt"><td colspan="3" style="padding:0 1pt"></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: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"></td></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 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:37.609%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.574%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:39.517%"></td><td style="width:0.1%"></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%;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:Security12bTitle" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6Y2RjN2VjNzI4ZTMzNDFjYzg5YzAzNTY3ZTk3ZWExM2MvdGFibGVyYW5nZTpjZGM3ZWM3MjhlMzM0MWNjODljMDM1NjdlOTdlYTEzY18xLTAtMS0xLTk0ODUz_eed8e2b6-ffad-44c6-b080-1a39a467e1b5">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:TradingSymbol" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6Y2RjN2VjNzI4ZTMzNDFjYzg5YzAzNTY3ZTk3ZWExM2MvdGFibGVyYW5nZTpjZGM3ZWM3MjhlMzM0MWNjODljMDM1NjdlOTdlYTEzY18xLTEtMS0xLTk0ODUz_d9df48ac-b052-4711-99b6-5cf01874c143">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6Y2RjN2VjNzI4ZTMzNDFjYzg5YzAzNTY3ZTk3ZWExM2MvdGFibGVyYW5nZTpjZGM3ZWM3MjhlMzM0MWNjODljMDM1NjdlOTdlYTEzY18xLTItMS0xLTk0ODUz_3ba839ac-8c69-4595-b070-252cf878d717">The NASDAQ Stock Market LLC</ix:nonNumeric></span></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></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><td style="width:22.507%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.536%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></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:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.738%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.047%"></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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityWellKnownSeasonedIssuer" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NjUxMDEzODMyYzE0NDQwNGFkY2M0YTExOWI3ZWFjZGMvdGFibGVyYW5nZTo2NTEwMTM4MzJjMTQ0NDA0YWRjYzRhMTE5YjdlYWNkY18wLTItMS0xLTk0ODUz_8ea839cd-a1df-4274-b628-7bb7faffe4f8">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><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"></td></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><td style="width:22.507%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.536%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></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:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.738%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.047%"></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: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><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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityVoluntaryFilers" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6YzljMzdhOTI1YWI1NDM2M2E3ZjJkZjYzMTkzNTk5YTcvdGFibGVyYW5nZTpjOWMzN2E5MjVhYjU0MzYzYTdmMmRmNjMxOTM1OTlhN18wLTgtMS0xLTk0ODUz_af1d18ac-9ed1-4390-9a69-cad8a3be0365">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"></td></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><td style="width:22.507%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.536%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></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:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.738%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.047%"></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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityCurrentReportingStatus" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6YmYxM2EzZDcyYTlhNDAzYjgwMjU4MDAwMTcwMjgzMWUvdGFibGVyYW5nZTpiZjEzYTNkNzJhOWE0MDNiODAyNTgwMDAxNzAyODMxZV8wLTItMS0xLTk0ODUz_272dc672-71ba-4d1e-87a9-761fda56ffbe">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><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"></td></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><td style="width:22.507%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.536%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></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:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.738%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.047%"></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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityInteractiveDataCurrent" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6ODQ2YjlkNzM4NmE4NDdmMjk4YmEwM2VhMjU2YjRkNTMvdGFibGVyYW5nZTo4NDZiOWQ3Mzg2YTg0N2YyOThiYTAzZWEyNTZiNGQ1M18wLTItMS0xLTk0ODUz_13bb30e9-82fe-4680-b303-30b8594d20db">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><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"></td></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><td style="width:2.732%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:45.967%"></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:2.272%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:44.796%"></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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6M2Q5YzBjZWM1MDY0NGMyZGJiZWQ3MmY3MWJkY2Q1OTkvdGFibGVyYW5nZTozZDljMGNlYzUwNjQ0YzJkYmJlZDcyZjcxYmRjZDU5OV8wLTEtMS0xLTk0ODUz_448d8d01-a361-4d06-a8e7-45fd1ba9c7a7">Large accelerated filer</ix:nonNumeric></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 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><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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6M2Q5YzBjZWM1MDY0NGMyZGJiZWQ3MmY3MWJkY2Q1OTkvdGFibGVyYW5nZTozZDljMGNlYzUwNjQ0YzJkYmJlZDcyZjcxYmRjZDU5OV8xLTMtMS0xLTk0ODUz_9bc08d07-002a-4886-8863-d160a3addfeb">&#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><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 Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6M2Q5YzBjZWM1MDY0NGMyZGJiZWQ3MmY3MWJkY2Q1OTkvdGFibGVyYW5nZTozZDljMGNlYzUwNjQ0YzJkYmJlZDcyZjcxYmRjZDU5OV8yLTMtMS0xLTk0ODUz_c30ca6b2-c224-4d6e-8afd-4f4be1c3534b">&#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:112%">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:112%">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><td style="width:22.507%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.536%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></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:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.738%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.047%"></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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:IcfrAuditorAttestationFlag" format="ixt-sec:boolballotbox" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NzhjNGIyZGMzNzg0NDlmNTlhZjM5NzRmOTU0NGM0Y2IvdGFibGVyYW5nZTo3OGM0YjJkYzM3ODQ0OWY1OWFmMzk3NGY5NTQ0YzRjYl8wLTQtMS0xLTk0ODUz_e5594a0b-18cb-47c7-8081-6c6a8b8925e0">&#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><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"></td></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:112%">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:112%">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 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:112%">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><td style="width:22.507%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.536%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></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:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.738%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.791%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.146%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.047%"></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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:EntityShellCompany" format="ixt-sec:boolballotbox" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6ODg5NzMxMmNhMDJlNDlmNTgyNjJiZTViMjIyYzFjMzYvdGFibGVyYW5nZTo4ODk3MzEyY2EwMmU0OWY1ODI2MmJlNWIyMjJjMWMzNl8wLTQtMS0xLTk0ODUz_d2587e13-5965-4e24-a716-95dec0c2b06e">&#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><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"></td></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 July&#160;3, 2022: $<ix:nonFraction unitRef="usd" contextRef="iad994e02f63b40f6aeb532436b44712f_I20220703" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18yNzEx_22e07b5f-5467-4124-8e7e-9dd6b6115997">7,520,015,752</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;29, 2023: <ix:nonFraction unitRef="shares" contextRef="i6d4b21bf8b104201a47980e6f38dcf81_I20230129" decimals="0" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18yNzc4_33c79ff8-ecfb-4d85-90e3-f0832a15e040">172,536,238</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, 2022. 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="id8333d090d7e467c8f0fde3d2520d2ed_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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, 2022 </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:'Times New Roman',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><td style="width:14.104%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:72.584%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.012%"></td><td style="width:0.1%"></td></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="#id8333d090d7e467c8f0fde3d2520d2ed_10">PART I</a></span></div></td><td colspan="3" style="padding:0 1pt"></td><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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_19">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 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="#id8333d090d7e467c8f0fde3d2520d2ed_22">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="#id8333d090d7e467c8f0fde3d2520d2ed_22">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 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="#id8333d090d7e467c8f0fde3d2520d2ed_25">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="#id8333d090d7e467c8f0fde3d2520d2ed_25">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="#id8333d090d7e467c8f0fde3d2520d2ed_28">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="#id8333d090d7e467c8f0fde3d2520d2ed_28">16</a></span></div></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></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="#id8333d090d7e467c8f0fde3d2520d2ed_34">PART II</a></span></div></td><td colspan="3" style="padding:0 1pt"></td><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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_58">30</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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_61">32</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="#id8333d090d7e467c8f0fde3d2520d2ed_211">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="#id8333d090d7e467c8f0fde3d2520d2ed_211">71</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="#id8333d090d7e467c8f0fde3d2520d2ed_214">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="#id8333d090d7e467c8f0fde3d2520d2ed_214">71</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="#id8333d090d7e467c8f0fde3d2520d2ed_217">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="#id8333d090d7e467c8f0fde3d2520d2ed_217">73</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="#id8333d090d7e467c8f0fde3d2520d2ed_220">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="#id8333d090d7e467c8f0fde3d2520d2ed_220">73</a></span></div></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></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="#id8333d090d7e467c8f0fde3d2520d2ed_223">PART&#160;III</a></span></div></td><td colspan="3" style="padding:0 1pt"></td><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="#id8333d090d7e467c8f0fde3d2520d2ed_223">73</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="#id8333d090d7e467c8f0fde3d2520d2ed_226">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="#id8333d090d7e467c8f0fde3d2520d2ed_226">73</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="#id8333d090d7e467c8f0fde3d2520d2ed_229">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="#id8333d090d7e467c8f0fde3d2520d2ed_229">73</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="#id8333d090d7e467c8f0fde3d2520d2ed_232">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="#id8333d090d7e467c8f0fde3d2520d2ed_232">73</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="#id8333d090d7e467c8f0fde3d2520d2ed_235">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="#id8333d090d7e467c8f0fde3d2520d2ed_235">74</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="#id8333d090d7e467c8f0fde3d2520d2ed_238">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="#id8333d090d7e467c8f0fde3d2520d2ed_238">74</a></span></div></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></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="#id8333d090d7e467c8f0fde3d2520d2ed_241">PART&#160;IV</a></span></div></td><td colspan="3" style="padding:0 1pt"></td><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="#id8333d090d7e467c8f0fde3d2520d2ed_241">74</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="#id8333d090d7e467c8f0fde3d2520d2ed_244">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="#id8333d090d7e467c8f0fde3d2520d2ed_244">74</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="#id8333d090d7e467c8f0fde3d2520d2ed_247">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="#id8333d090d7e467c8f0fde3d2520d2ed_247">74</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="id8333d090d7e467c8f0fde3d2520d2ed_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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="id8333d090d7e467c8f0fde3d2520d2ed_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%">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, electric vehicle batteries, 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 operates in one segment. We offer a variety of machine vision products that have similar economic characteristics, production processes, sales distribution channels, and types of customers. Cognex sells to customers in nearly all industries in which discrete items are manufactured on an assembly line or moved through a distribution center. Our largest sales are in the automotive, logistics, and consumer electronics industries, which combined represented approximately 69% of our total revenue in 2022. Our two largest customers, one in the logistics industry and one in the consumer electronics industry, each represented approximately 11% of our total revenue in 2022. Cognex was incorporated in Massachusetts in 1981.</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 </span></div><div style="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 customers across a variety of industries, including automotive, logistics, consumer electronics, medical-related, semiconductor, consumer products, food and beverage, and others.</span></div><div style="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.</span></div><div style="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 ability to compete depends on our ability to design new products and functionality that meet evolving customer requirements, and then to manufacture and sell those high-quality products in a timely manner. The primary competitive factors affecting the choice of a machine vision system include product functionality and performance, ease of use, vendor reputation, price, and post-sales support. The importance of each of these factors varies depending on the specific needs of 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: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%;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%">Our goal is to expand our position as a leading worldwide machine vision provider by growing in our core markets, as well as expanding into new markets and customers with both current and new products and services. </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">We continue to invest in our core markets, such as automotive, logistics, and consumer electronics where we are a leading provider of vision and ID products for 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, we are moving beyond barcode reading into more complex applications in e-commerce and omni-channel retail distribution centers, as well as parcel and post warehouses. In automotive, we are developing new solutions for fast growing electric vehicle manufacturers and suppliers.</span></div><div style="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, strategic 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 supplemental technical support or integration assistance. Our &#8220;Emerging Customer&#8221; sales initiative is expanding our sales force to reach customers who may be newer to factory automation and have yet to fully benefit from all that machine vision can offer. These customers are increasingly looking for automation solutions that are easy to implement, easy to use, and provide the best technology. We expect our Emerging Customer strategy to broaden 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">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 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. We also invest in technology that makes vision easier to use and more affordable, and therefore, available to a broader base of customers, such as our vision sensor products that enable customers with a lower budget to use machine vision while minimizing installation and applications support.</span></div><div style="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 expansion in adjacent market segments. We are focusing specifically on segments in which our products and solutions, application expertise, and customer and industry relationships should 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, as well as fit within our corporate culture. We plan to continue to seek 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">Sustainable profitability</span></div><div style="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 careful in choosing growth opportunities that we believe will maintain our gross margin percentages, which have averaged in the mid-70 percent range in the past several years and reflect the value our customers place on our innovative products. Our relatively high gross margins have the potential to provide us with strong incremental profit margins, leading to high operating leverage in our financial model.</span></div><div style="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 both quickly and painlessly 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%">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">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 20 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 Electric Vehicle (&#8220;EV&#8221;) manufacturing equipment, including related to battery manufacturing and inspection. Cognex works closely with the major EV battery manufacturers in Asia that we believe produce more than 90% 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, and we anticipate that our existing relationships and proven offerings will position us to </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">capture a significant share of this growth. These anticipated trends may offset expected reductions in traditional powertrain investments on internal combustion engine vehicles, leading to 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="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. We expect leading companies in this space to continue to grow based on new technologies that we expect to succeed and build on the smartphone. 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 technologies 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">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%">Logistics has been one of our largest growth drivers over the past five years and has become one of our largest end markets. We believe that our e-commerce logistics business is differentiated by the high performance of our bar-code reading and that growth will be driven by retailers investing in online fulfillment. 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. Beyond barcode reading, we expect vision applications in logistics to grow quickly and become a more substantial business for us. Vision applications include tasks like inspecting packages for damage, object and symbol recognition, and dimensioning. Geographically, our current logistics business is primarily within the U.S., but, over the long term, we expect to realize the highest rates of growth in Europe and Asia, where we believe customers are beginning to catch up with the U.S. in logistics automation technology and are moving away from local incumbent suppliers. In 2022, we saw a slowdown in this end market as the leading e-commerce players took a post-pandemic &#8220;time out&#8221; to absorb excess capacity, but we currently continue to expect logistics 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">Medical-Related</span></div><div style="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 has a growing customer base of life science equipment suppliers. Our products are specified in over 100 different machine designs, many of which are in the process of obtaining regulatory approval. As they launch, we believe they will deliver many years of recurring revenue.</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%">Applications in this market include lab automation and medical device inspection applications. In recent years, we also have seen demand for machine vision grow from manufacturers of diagnostic tests, vaccines, and protective 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%;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 with a need for machine vision applications is expanding. Other end market uses of Cognex machine vision include manufacturers of semiconductors, regulated products reducing counterfeiting, food producers improving food safety, manufacturers using 3D measurement for robotic guidance, and many others.</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 industrial image-based 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 unit that combines camera, 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 vision systems and sensors, which include 2D, 3D, deep learning, and edge learning models, meet various price and performance requirements for factory automation 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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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">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 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">Industrial Image-Based 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 automotive, consumer products, medical-related, and logistics. 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: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 $141 million, $135 million, and $131 million for the years ended December 31, 2022, 2021 and 2020, respectively. We expect to continue our commitment to RD&amp;E, even during periods of lower revenue levels, to introduce new products, platforms, 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%">Cognex&#8217;s hardware products 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 manufacturer is located in Indonesia. Our contract manufacturers 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 in Cork, Ireland or Southborough, Massachusetts, USA, where trained Cognex personnel load Cognex software onto the products, provide additional assembly and image alignment as needed, and perform quality control procedures. Fully configured finished products for customers in the Americas, with the exception of certain products stocked locally in Mexico, are then shipped from our Southborough, Massachusetts distribution center, while finished products for customers outside of the Americas are shipped from our Cork, Ireland 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 which 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. Towards the end of 2022, we also began to build out our Emerging Customer sales force that primarily focuses on establishing relationships and selling into new accounts which are newer to factory automation and Cognex.</span></div><div style="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 66% of our total revenue in 2022, with approximately 23% from customers based in Europe, 23% from customers based in Greater China, and 20% 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 </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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, 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 can 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%">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 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 31, 2022, Cognex employed 2,441 Cognoids globally, including 1,403 in sales, marketing, and service activities; 621 in research, development, and engineering; 191 in manufacturing and quality assurance; and 226 in information technology, finance, and administration. Of our 2,441 Cognoids, 1,495 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:112%;text-decoration:underline">Culture and Values</span></div><div style="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 pay-for-performance philosophy. We believe these efforts align with our stockholders&#8217; long-term interests and better position Cognex to operate as a leader in the machine vision industry.</span></div><div style="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">Diversity, Equity, Inclusion, and Belonging</span></div><div style="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 are incredibly proud of our culture, we continue to listen, learn, and grow. We are excited about the opportunities to continue to build an organization that reflects the best of the world around us. As a multi-national company where over half our Cognoids live outside the U.S., diversity means different things to different groups. We are building strategies and plans to continue to enhance our diversity, equity, inclusion, and belonging (DEIB) initiatives. One specific place where this evolution is visible is through the launch of our DEIB Council. The Council is led by Cognex&#8217;s Vice President of Solutions and is comprised of over 50 volunteer Cognoids representing a broad cross-section of functions, geographies, and backgrounds.</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%">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, 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 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 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_16"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></span></div></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;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 on 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 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 of key suppliers to manufacture and deliver product 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 presently manufactured by a third-party contractor located in Indonesia. The loss of this key supplier, or failure of this contract manufacturer to timely supply products, access necessary credit to operate its business, or otherwise remain in business, could have a material adverse impact on our operating results. Although our primary contract manufacturer has the ability to shift production to plants in other regions when operations in its Indonesia plant are disrupted, production and test equipment located at the Indonesia plant that is unique to the manufacture of Cognex products creates practical challenges to doing so in a timely manner. We have been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. 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 contract 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-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. The fire </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">resulted in delayed shipments and loss of sales which adversely impacted our business, financial condition, and results of operations during 2022. C</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">hallenges 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%">The fire at our primary contract manufacturer&#8217;s plant in Indonesia, at which Cognex products are manufactured and inventory is stored, has had, and may continue to have, a negative impact on our business 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:400;line-height:120%">On June 7, 2022, our primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories as well as component inventories owned by the contract manufacturer that were designated for Cognex products, limiting our ability to fulfill certain orders during the second half of the year. We have worked with the contract manufacturer to assess the damage, resume production, maintain standards of product quality, and replenish inventories destroyed by the fire, which included component purchases at higher-than-normal prices. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,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%">We can provide no assurance that additional insurance coverage and/or recoveries from the contract manufacturer will be available to cover the net loss from the fire. Our assessment of the impact of the fire on our business and our work with the contract manufacturer remains ongoing as of the date of this report and, as a result, we cannot predict the full extent of the impact that the fire may have on our business, results of operations, 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-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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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 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 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 of Cognex&#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%">Although we are taking certain actions to mitigate supply risk and have entered into agreements, including in broker markets, 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 its 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-style:italic;font-weight:700;line-height:120%">Our failure to effectively manage product transitions or accurately forecast customer demand could result in 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%">Because the market for our products is characterized by rapid technological changes, we frequently introduce new products with improved functionality, ease-of-use, and performance, or lower cost that may replace existing products. Among the risks associated with the introduction of new products are difficulty predicting customer demand and effectively managing inventory levels to ensure adequate supply of the new product and avoid excess supply of the legacy product. Our failure to effectively manage product transitions or accurately forecast customer demand, in terms of both volume and configuration may lead 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 strategically may enter into non-cancelable and/or non-refundable commitments with vendors to purchase materials for our products in advance of demand to address concerns about the availability of future supplies, build safety stock to help ensure customer shipments are not delayed should we experience higher than anticipated demand for materials with long lead times, or take advantage of favorable pricing. Disruptions in both the supply of materials for our products and delivery of products from our contract manufacturers, such as those caused by the impact of global supply chain challenges or other factors, have resulted, and may continue to result, in the Company purchasing a significant amount of inventory in response to these disruptions and in advance of demand. These measures to purchase inventory may expose us to an increased risk of excess or obsolete inventory and resulting charges if actual demand is lower than anticipated.</span></div><div style="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 primary contract manufacturer have not been consumed in the production of our 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 manufacturer 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-style:italic;font-weight:700;line-height:120%">Disruptions to one of our distribution centers 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%">Cognex ships finished products for customers located in the Americas from our Southborough, Massachusetts distribution center, and finished products for customers located outside of the Americas from our Cork, Ireland distribution center. Following the COVID-19 pandemic, Cognex has experienced, and may continue to experience, increased labor shortages or working restrictions due to factors such as health and safety concerns or governmental regulations. Although we have the ability to shift operations from one distribution center to another, there are practical challenges to doing so in a timely, cost-effective manner, and we may experience delays in shipping customer orders. These delays could negatively impact customer satisfaction and, in turn, cause loss of sales, which 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-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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></span></div></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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="margin-top:5pt;padding-left:72pt;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 or other high-risk end-user industries</span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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 the COVID-19 Pandemic</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 extent to which the COVID-19 pandemic may impact our business is uncertain and it could adversely affect our results of operations 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%">The COVID-19 pandemic continues to have a significant impact around the world, particularly in China, prompting governments and businesses to take certain measures in response, such as the imposition of travel restrictions, temporary closures of businesses, quarantine and shelter-in-place orders, and adoption of remote working. COVID-19 continues to impact global economic activity and create macroeconomic uncertainty. </span></div><div style="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 the impact of the pandemic has lessened in most locations, we continue to face several risks and uncertainties related to the impact of COVID-19 on our business. It is difficult for us to quantify the duration and severity of this impact due to many factors beyond our control and knowledge, including the timing, extent, trajectory, and duration of the pandemic, the emergence of new variants, the imposition of protective public safety measures, and the impact of the pandemic on the global economy. These risks and uncertainties include, among others:</span></div><div style="margin-top:5pt;padding-left:72pt;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 delay or cancel orders for our products and services, </span></div><div style="margin-top:5pt;padding-left:72pt;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 global facilities, offices, and/or operations, as well as those of our distribution and integration partners or customers, may be temporarily shut down at various times, or subject to operating restrictions to protect public health and the health and safety of employees and customers,</span></div><div style="margin-top:5pt;padding-left:72pt;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 vendors and contract manufacturers may be unable to fulfill their delivery obligations to us within acceptable lead times for extended periods of time, which may force us to seek alternative sources of supply at higher costs or redesign our products, </span></div><div style="margin-top:5pt;padding-left:72pt;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">challenges involved in remote working may cause disruptions in our business and operations, including an increased risk of delays in new product introductions, information security breaches, and personnel-related challenges, and</span></div><div style="margin-top:5pt;padding-left:72pt;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 online sales and marketing efforts may be less effective than face-to-face activities, resulting in fewer new customers and lower sales from new products 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%">These risks and uncertainties could have a material adverse effect on the continuity of our business, results of operations, and financial condition. This situation is continuously changing and additional impacts on our business may arise of which we are not currently aware.</span></div><div style="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 Revenue Concentrations</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%">In 2022, we had two large customers, one in the logistics industry and one in the consumer electronics industry, that each represented more than 10% 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 percentage. 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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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">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 cyber attack 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. Any such compromise to our information security could result in the distraction of management and diversion of information technology resources, theft of our intellectual property, including software source code, a misappropriation of our cash or other assets, an interruption in our operations, the unauthorized publication of our confidential business or proprietary information, the unauthorized release of customer, vendor, or employee data, and the exposure to litigation or regulatory penalties, any of which could harm our business and operating results. 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. </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:112%">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. For instance, the European Union's General Data Protection Regulation ("GDPR"), many state and federal privacy laws within the United States, and other similar global laws in locations in which we do business govern our global data privacy practices. 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. These laws continue to develop and may be inconsistent from jurisdiction to jurisdiction. 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 and liability to us, damage our reputation, inhibit sales, and 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-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:72pt;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:72pt;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:72pt;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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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">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%">If we fail to attract and retain key talent 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 on 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 artificial intelligence are in high demand and competition for their talents is intense. We use time-based and performance-based equity awards, including stock options and restricted stock units ("RSUs") as a key component of compensation for our more senior employees in order 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, retain, and motivate employees, and any such difficulties 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%">Beginning with the COVID-19 pandemic, many of our employees in various Cognex offices have worked remotely or pursuant to &#8220;hybrid&#8221; office attendance policies due to health and safety concerns, to comply with governmental regulations, or to adapt to changing workplace expectations, with the primary exception of our distribution center employees who remain on-site to manage the delivery of inventory to our customers. While we have been able to effectively conduct most business activities in this manner, these conditions have made it more challenging to maintain our collaborative corporate culture. As regulatory and health conditions allow, we are returning to a more collaborative, largely on-site work environment. In most locations, we have instituted a &#8220;hybrid&#8221; work model, where our employees work on-site in a team environment the majority of the time. If we are unsuccessful in bringing our employees back into the office, or our employees choose to leave the Company altogether for more remote work flexibility or higher compensation, our business and ability to execute our plans could be adversely affected in a material way. If we do not manage changing workforce dynamics effectively, it could materially adversely affect our culture, reputation, and operations.</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. 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.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product development is often a complex, time-consuming, and costly process involving significant investment in research and development with no assurance of return on investment. Our strong balance sheet allows us to continue to make significant investments in research, development, and marketing for new products and technologies. Research is by its nature speculative, and the ultimate commercial success of a product depends on various factors, many of which are not under our control. We may not achieve significant revenue from new product investments for a number of 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: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 distributors in certain regions, which could result in additional costs or operational challenges. Successfully managing the interaction of our direct and indirect sales channels to reach various potential customers for our products and services is a complex process. In addition, our reliance on indirect selling methods may reduce visibility to demand and pricing issues.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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 adhering 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 stock 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%">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 by various companies. In recent years, we have encountered increased competition from low-cost vision providers in China, as well as from large technology companies that may offer free open-source solutions. Any of these competitors may have greater financial or other resources than we do, or may develop more compelling technologies. We may not be able to compete successfully in the future and our investments in research and development, sales and marketing, and support activities may be insufficient to enable us to maintain our competitive advantage. In addition, competitive pressures could lead to price erosion that could have a material adverse effect on our 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, over the past year, 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 companies are acquired or are unable to continue operations. For example, some of our current and potential competitors in the machine vision industry have made acquisitions, or announced new strategic alliances, with other current and potential competitors in the machine vision industry. We believe that industry consolidation may result in stronger competition and may be accompanied by pressure from customers for lower prices. This could lead to more variability in our operating results and could have a material adverse effect on our business, 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-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. These acquisitions may involve significant risks and uncertainties, which could include, among others:</span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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, and systems of the acquired business, particularly in locations far from the company's headquarters,</span></div><div style="margin-top:5pt;padding-left:72pt;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,</span></div><div style="margin-top:5pt;padding-left:72pt;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,</span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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:72pt;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;padding-left:72pt;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:72pt;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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></span></div></div><div style="margin-top:5pt;padding-left:72pt;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, and</span></div><div style="margin-top:5pt;padding-left:72pt;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 achieve projected sales of acquired 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%">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%">Business system disruptions 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%">The Company is making significant investments in business systems related to our sales processes, including systems to help our sales team more efficiently manage customer relationships and sales opportunities. Implementing new business systems requires a significant investment of time and money, and may divert management&#8217;s attention from other operational matters. The implementation of new business systems and changes to associated business processes, particularly those that are customer-facing, may result in significant business disruption and negatively impact our customers&#8217; experience, resulting in loss of sales. The Company intends to continue to make IT-related investments to improve its management information systems, support new business models, and support the expansion of our business internationally. Any disruption occurring with our business systems may 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 Matters</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, 2022, we had approximately $673 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) since these securities are designated as available-for-sale securities. As of December 31, 2022, our portfolio of debt securities had a net unrealized loss of $26,817,000. Included in this net loss, were gross unrealized losses totaling $27,560,000, of which $12,718,000 were in a loss position for less than twelve months and $14,842,000 were 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. Management currently intends to hold these securities to full value recovery at maturity. It is our policy to invest in investment-grade debt securities that minimize our exposure to credit losses. No credit losses were recorded 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 31, 2022, we had approximately $12 million in acquired intangible assets, consisting primarily of acquired technologies and customer relationships. 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. In 2020, deteriorating global economic conditions from the COVID-19 pandemic triggered a review of long-lived assets for potential impairment, which resulted in intangible asset impairment charges totaling $19,571,000. A further decline in the cash flows generated by these or other intangible assets may result in future impairment 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%">If we determine that any of these investments or intangible assets are impaired, we will be required to take a related charge to earnings 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 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 recently adopted, or are considering the adoption of, revisions to their respective tax laws based on the Organization for Economic Co-operation and Development (&#8220;OECD&#8221;)&#8217;s 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, which could have a material adverse effect on our financial position, liquidity, or 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:400;line-height:120%">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, net income, or cash flows in the period in which the determination is made.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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.</span></div><div style="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%">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, and Mexican Peso. We estimate that approximately 52% of our sales in 2022 were invoiced in currencies other than the U.S. 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. 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. 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. 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: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. Further, 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:72pt;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:72pt;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:72pt;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 vendors may be unable to fulfill their delivery obligations to us in a timely manner,</span></div><div style="margin-top:5pt;padding-left:72pt;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 committed to purchase,</span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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 form of retention for our employees, and</span></div><div style="margin-top:5pt;padding-left:72pt;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="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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">As of December 31, 2022, the Company had approximately $854 million in cash and investments. In addition, Cognex has 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="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, fires, energy shortages, widespread public health issues, or 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, fires, energy shortages, public health crises, such as pandemics and epidemics, man-made disasters, such as cyber-attacks, terrorism or industrial accidents, or other events outside of our control. Certain of our business operations, such as our third-party primary contractor manufacturer in Indonesia, are in locations that may be more prone to earthquakes and other natural disasters, and global climate change may result in certain types of natural disasters occurring more frequently or with more intense effects. 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, operating results, or financial condition. Because the Company relies on single or limited sources for the supply of certain components and manufacture of our products, a business disruption affecting such sources would worsen any adverse consequences to the 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%">While the Company maintains 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 is difficult to predict.</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 2022, approximately 66% of our revenue was derived from customers located outside of the United States. We anticipate that international sales will continue to account for a significant portion of our revenue. In addition, we source components from suppliers located outside of the United States, including China, and utilize third-party contract manufacturers, primarily located in Indonesia, to assemble certain of our products. 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="margin-top:5pt;padding-left:72pt;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:72pt;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 in injecting and repatriating cash,</span></div><div style="margin-top:5pt;padding-left:72pt;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,</span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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:72pt;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:72pt;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:72pt;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 in staffing and managing foreign operations, particularly as we expand our presence globally </span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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">instability in economic or political conditions,</span></div><div style="margin-top:5pt;padding-left:72pt;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">political or trade sanctions,</span></div><div style="margin-top:5pt;padding-left:72pt;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:72pt;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">uncertainties surrounding the interpretation and application of regulatory and statutory requirements,</span></div><div style="margin-top:5pt;padding-left:72pt;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, and</span></div><div style="margin-top:5pt;padding-left:72pt;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 operating results. </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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 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 been immaterial to our total cost of goods. However, cost increases as a result of these or other trade tariffs could be material in the future. Trade tariffs also have had an indirect impact on the economic climate in China, which in turn, has had a negative impact on the Company's revenue from customers based in China who see risk in doing business with a U.S. company. In addition to trade tariffs, United States 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. Political uncertainty surrounding trade and other international disputes could have a negative effect on customer confidence and spending, which could adversely affect our business. The imposition of additional tariffs or other trade barriers could increase our costs in certain markets and may cause our customers to find alternative providers of machine vision products and services. 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%">Furthermore, in response to the Russian invasion of Ukraine in February of 2022, the U.S. government and the governments of various jurisdictions in which we operate, including Canada, the United Kingdom, the European Union, and others, have imposed broad economic sanctions and export controls targeting specific industries, entities and individuals in Russia. Ongoing geopolitical tensions related to the Russia and Ukraine conflict, including resulting sanctions and export controls imposed by the U.S. and other countries as well as the impact on the supply of energy resources in Europe, have not materially adversely affected our business to date; however, further escalation of these geopolitical tensions could have a broader impact that expands into other markets where we do business, such as the European Union, which could adversely affect our business and/or our supply chain, distribution and integration partners, or customers in the broader region.</span></div><div style="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 are subject to applicable anti-corruption laws, such as the U.S. Foreign Corrupt Practices Act and the U.K. Bribery Act, and similar anti-corruption and anti-kickback laws in the jurisdictions in which we operate. These laws generally prohibit offering, promising, giving, or authorizing others to provide anything of value, either directly or indirectly, to a government official or private party in order to influence official action or otherwise gain an unfair business advantage, such as to obtain or retain business. Particularly as a result of our global operations, including in developing countries, and our growing international sales force, our relationships with our customers and resellers could expose us to liability under these laws. Violations of anti-corruption laws may result in severe civil and criminal penalties for noncompliance. Even an unsuccessful challenge or investigation into our practices is costly to defend, and could cause adverse publicity, and thus could have a material adverse effect on our business, 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-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%">Many governments, regulators, investors, employees, customers and other stakeholders are increasingly focused on environmental, social, and governance considerations relating to businesses, including climate change and greenhouse gas emissions, human and civil rights, and diversity, equity, and inclusion. In addition, the Company makes statements about its environmental, social, and governance goals and initiatives through its Sustainability Reports, information provided on its website, and other communications. Responding to these environmental, social, and governance considerations and implementation of these goals and initiatives involves risks and uncertainties, requires investments, and depends in part on third-party performance or data that is outside of the Company&#8217;s control. The Company cannot guarantee that it will achieve its announced environmental, social, and governance goals and initiatives. In addition, some stakeholders may disagree with the Company&#8217;s goals and initiatives. Any failure, or perceived failure, by the Company to achieve its goals, further its initiatives, adhere to its 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 the Company&#8217;s business, reputation, results of operations, financial condition, and stock price.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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%">The Company has experienced substantial stock price volatility in the past and may continue to do so in the future. The price of the Company&#8217;s stock may be affected by factors such as the Company&#8217;s 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. Price volatility may cause the average price at which we repurchase our stock in a given period to exceed the stock&#8217;s price at a given point in time. We believe the price of our stock should reflect expectations of future growth and profitability. If the Company fails to meet expectations related to future growth, profitability, dividends, share repurchases or other market expectations, the price of the Cognex&#8217;s 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="id8333d090d7e467c8f0fde3d2520d2ed_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="id8333d090d7e467c8f0fde3d2520d2ed_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 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 research, development, and engineering, sales, marketing, service, finance, and information technology 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. This facility served as the distribution center for customers in the Americas through the first quarter of 2022. This building is being held for future expansion and is expected to be used as a training center. In December 2021, Cognex entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of 10 years to serve as a new distribution center for customers in the Americas effective as of the second quarter 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%">In 2014, Cognex purchased a 50,000 square-foot building in Cork, Ireland. This facility serves as the distribution center for customers outside of 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%">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 2032. Certain of these leases contain renewal options, retirement obligations, escalation clauses, rent holidays, and leasehold improvement incentives.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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 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="id8333d090d7e467c8f0fde3d2520d2ed_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 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_34"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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="id8333d090d7e467c8f0fde3d2520d2ed_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;29, 2023, there were approximately 650 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 October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 1,215,000 shares at a cost of $51,036,000 in 2020, and 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 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%">On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 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%">On March 3, 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 total cost of $87,314,000 in 2022, leaving a remaining balance of $412,686,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%">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 2022:</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.269%"><tr><td style="width:1.0%"></td><td style="width:33.509%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.805%"></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:12.007%"></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:15.983%"></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:15.988%"></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%">Total Number of<br/>Shares&#160;Purchased</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%">Average<br/>Price&#160;Paid<br/>per Share</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 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><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></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%">October 3 - October 30, 2022</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%">213,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><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%">43.42&#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%">213,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><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%">429,353,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></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%">October 31 - November 27, 2022</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">186,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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.50&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">186,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">420,557,000&#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%">November 28 - December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">159,000&#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%">49.44&#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%">159,000&#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,686,000&#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%">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%">558,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><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%">46.49&#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%">558,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><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%">412,686,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></tr></table></div><div style="text-align:justify"><span><br/></span></div><div style="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.055 per share in the first, second, and third quarters of 2020, $0.060 per share in the fourth quarter of 2020 and in the first, second, and third quarters of 2021, and $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022. The dividend was increased to $0.070 per share in the fourth quarter of 2022. Also, in the fourth quarter of 2020, an additional special cash dividend of $2.00 per share was declared and paid.</span></div><div style="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 $45,921,000 in 2022, $43,263,000 in 2021, and $390,508,000 in 2020, which included $351,428,000 paid for the special cash dividend. 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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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 Research Data Group, Inc. 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-20221231_g1.jpg" alt="cgnx-20221231_g1.jpg" 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><td style="width:43.959%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.432%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.548%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.432%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.548%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.432%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.548%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.432%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.548%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.432%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.548%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.441%"></td><td style="width:0.1%"></td></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/2017 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><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/17</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%">12/18</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%">12/19</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%">12/20</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%">12/21</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%">12/22</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><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">63.48</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><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">92.40</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><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">140.04</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><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">136.05</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><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">82.85</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></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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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%">97.16</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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%">132.81</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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%">192.47</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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%">235.15</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><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%">158.65</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></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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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.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:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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%">135.41</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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%">188.97</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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%">216.71</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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%">130.52</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></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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_40"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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><td style="width:45.065%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.076%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.537%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.076%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.537%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.076%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.537%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.076%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.537%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.083%"></td><td style="width:0.1%"></td></tr><tr style="height:11pt"><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="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></tr><tr><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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></tr><tr><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></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></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></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></tr></table></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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&#160;27A of the Securities Act of 1933, as amended, and Section&#160;21E of the Securities Exchange Act of 1934, as amended. 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; 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, the expected impact of the fire at our primary contract manufacturer's plant on our assets, business and results of operations and related insurance recoveries, customer demand and order rates and timing of related revenue, managing supply shortages, delivery lead times, future product mix, research and development activities, sales and marketing activities, new product offerings and product development activities, capital expenditures, investments, liquidity, dividends and stock repurchases, strategic and growth plans, 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 reliance on key suppliers, such as our primary contract manufacturer, to manufacture and deliver products; (2) the expected impact of the fire at our primary contract manufacturer's plant on our assets, business, and results of operations and related insurance recoveries; (3) delays in the delivery of our products, the failure to meet delivery schedules, and resulting customer dissatisfaction or loss of sales; (4) the inability to obtain, or the delay in obtaining, components for our products at reasonable prices; (5) the failure to effectively manage product transitions or accurately forecast customer demand; (6) the inability to manage disruptions to our distribution centers or to our key suppliers; (7) the inability to design and manufacture high-quality products; (8) the impact, duration, and severity of the COVID-19 pandemic, particularly in China, including the availability and effectiveness of vaccines as well as government lockdowns; (9) the loss of, or curtailment of purchases by, large customers in the logistics, consumer electronics, or automotive industries; (10) information security breaches; (11) 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%">(12) the inability to protect our proprietary technology and intellectual property; (13) the inability to attract and retain skilled employees and maintain our unique corporate culture; (14) the technological obsolescence of current products and the inability to develop new products; (15) the failure to properly manage the distribution of products and services, including the management of lead times and delivery dates; (16) the impact of competitive pressures; (17) the challenges in integrating and achieving expected results from acquired businesses; (18) potential disruptions in our business systems; (19) potential impairment charges with respect to our investments or acquired intangible assets; (20) exposure to additional tax liabilities, increases and fluctuations in our effective tax rate, and other tax matters; (21) fluctuations in foreign currency exchange rates and the use of derivative instruments; (22) unfavorable global economic conditions, including increases in interest rates and high inflation rates; (23) business disruptions from natural or man-made disasters, such as fire, or public health issues; (24) economic, political, and other risks associated with international sales and operations, including the impact of trade disputes on the economic climate in China and the war in Ukraine; (25) exposure to potential liabilities, increased costs, reputational harm, and other adverse effects associated with expectations relating to environmental, social, and governance considerations; (26) stock price volatility; and (27) 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&#160;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 </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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, leading to applications with a broad base of customers across a variety of industries, including automotive, logistics, consumer electronics, medical-related, semiconductor, consumer products, food and beverage, and others. </span></div><div style="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 the year ended December&#160;31, 2022 totaled $1,006,090,000, representing a decrease of 3% from 2021. The decrease was driven by three primary factors: (i) lower revenue from the logistics industry, our largest market in 2021, as a result of the slowing of large e-commerce customer projects as such customers absorbed excess capacity built up during the pandemic; (ii) the unfavorable impact of foreign currency exchange rate changes on revenue; and (iii) the impact of the June 7, 2022 fire at our primary contract manufacturer's plant in Indonesia, which destroyed a large amount of component inventory limiting our ability to fulfill certain orders in the year. This decrease was partially offset by growth in the broader factory automation market, most notably in the consumer electronics, automotive, and semiconductor industries.</span></div><div style="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 as a percentage of revenue was 72% in 2022 compared to 73% in 2021. The decrease resulted primarily from higher inventory costs, due largely to global supply chain constraints and the expedited replenishment of inventories lost in the fire at our primary contract manufacturer's plant on June 7, 2022. These circumstances have resulted in broker-buy purchases for components at higher-than-normal costs. A more favorable revenue mix and the Company's price increases partially offset this decrease in gross margin.</span></div><div style="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 by $30,950,000, or 7%, from 2021. On June 7, 2022, our primary contract manufacturer suffered a fire at its Indonesian plant destroying a large portion of the Company's component inventories. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,000. Excluding the loss from fire of $20,779,000 and restructuring charges of $1,657,000 related to a business acquisition in 2022, operating expenses increased by $8,514,000, or 2%, as higher personnel-related costs and stock-based compensation expense, were largely offset by decreases in incentive compensation due to weaker business performance and the favorable impact of foreign currency exchange rate changes on 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%">Operating income decreased to 24% of revenue in 2022 compared to 30% of revenue in 2021. This decrease was driven primarily by the loss from the fire of $20,779,000 and the decrease in revenue of $31,008,000. This lower level of operating income resulted in net income of 21% of revenue in 2022 compared to 27% of revenue in 2021, and net income per diluted share of $1.23 in 2022 compared to $1.56 in 2021.</span></div><div style="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><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:#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><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">2022</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><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">2021</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%;text-decoration:underline">2020</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><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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%">28</span><span style="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%">27&#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%">25&#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%">Gross margin</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%">72</span><span style="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%">73&#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%">75&#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%">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%">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:#cceeff;padding:2px 1pt 2px 0;text-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&#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&#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%">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%">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:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33&#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%">Loss 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%">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%">&#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;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%">&#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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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%">Intangible asset impairment 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%">3&#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%">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%">24</span><span style="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%">30&#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%">21&#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%">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%">&#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%">1&#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 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%">25</span><span style="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%">31&#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%">23&#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%">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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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&#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%">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%">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:#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%">27&#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%">22&#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="id8333d090d7e467c8f0fde3d2520d2ed_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:400;line-height:120%">As foreign currency exchange rates are a factor in understanding period-to-period comparisons, we believe the presentation of results on a constant-currency basis in addition to reported results helps improve investors&#8217; ability to </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">understand our operating results and evaluate our performance in comparison to prior periods. We also use results on a constant-currency basis as one measure to evaluate our performance. Constant-currency information compares results between periods as if exchange rates had remained constant period-over-period. We generally refer to such amounts calculated on a constant-currency basis as excluding the impact of foreign currency exchange rate changes. Results on a constant-currency basis are not in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP) and should be considered in addition to, and not as a substitute for, results prepared in accordance with U.S. GAAP.</span></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%">Year Ended December&#160;31, 2022 Compared to Year Ended December&#160;31, 2021</span></div><div style="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-bottom:8pt;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 the year ended December 31, 2022 was $1,006,090,000 compared to $1,037,098,000 for the prior year, representing a decrease of 3%. Changes in foreign exchange rates resulted in a lower level of reported revenue in 2022 as compared to 2021. Excluding the impact of foreign currency exchange rate changes, revenue increased by 1% compared to 2021.</span></div><div style="margin-bottom:8pt;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 fire on June 7, 2022 at our primary contract manufacturer&#8217;s plant in Indonesia, which destroyed a large amount of component inventory, limited our ability to fulfill certain orders in the year, which resulted in lower revenue. Revenue from the logistics industry, our largest market in 2021, decreased by approximately 25% as a result of the slowing of large e-commerce customer projects as such customers absorbed excess capacity built up during the pandemic. Excluding these decreases in revenue from a few large logistics customers, revenue from the remainder of the logistics industry grew, as the broader base of logistics customers continued to invest in automation. The decline in overall revenue from the logistics industry was partially offset by growth in the broader factory automation market, most notably in the consumer electronics, automotive, and semiconductor industries. Consumer electronics revenue increased by approximately 8%, and 14% on a constant-currency basis, primarily as a result of increased large-customer demand. Revenue from our largest industry in 2022, automotive, increased by 7%, and 13% on a constant-currency basis, primarily as a result of continued investment in electric vehicles.</span></div><div style="margin-bottom:8pt;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 were as follows:</span></div><div style="margin-bottom:8pt;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 decreased by 10% from the prior year driven primarily by a decrease in revenue from customers in the logistics industry. This decrease was partially offset by an increase in revenue from other industries, led by growth in the automotive and consumer electronics industries.</span></div><div style="margin-bottom:8pt;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 5% from the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2022, as sales denominated in Euros were translated into U.S. Dollars at a lower rate. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Europe increased by 5% from the prior year. The increase came from customers in a variety of industries, most notably the automotive and consumer electronics industries, partially offset by a decrease in revenue from customers in the logistics industry.</span></div><div style="margin-bottom:8pt;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 increased by 14% from the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2022, primarily from sales denominated in Chinese Renminbi. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Greater China increased by 17% from the prior year. The increase was driven primarily by higher revenue in the consumer electronics industry, particularly due to increased large-customer demand, and to a lesser extent, growth in the semiconductor and automotive industries.</span></div><div style="margin-bottom:8pt;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 remained flat with the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2022, primarily from sales denominated in Japanese Yen and Korean Won. Excluding the impact of foreign currency exchange rate changes, revenue from these customers in other countries in Asia increased by 8% from the prior year, led by higher revenue in semiconductor and automotive industries, and, to a lesser extent, the logistics industry. These increases were partially offset by a decrease in revenue from the consumer electronic industry.</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of the date of this report, we expect revenue for the first quarter of 2023 to be lower than the revenue reported for the fourth quarter of 2022 of $239,433,000, primarily due to lower revenue from a few large e-commerce customers and broader macroeconomic softness.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></span></div></div><div style="margin-bottom:8pt;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 Margin</span></div><div style="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 as a percentage of revenue decreased to 72% in 2022 compared to 73% in 2021. The decrease resulted primarily from higher inventory costs, due largely to global supply chain constraints and the expedited replenishment of inventories lost in the fire at our primary contract manufacturer's plant on June 7, 2022. These circumstances have resulted in broker-buy purchases for components at higher-than-normal costs. The decrease in gross margin was also due to an unfavorable impact of foreign currency exchange rate changes.</span></div><div style="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 more favorable revenue mix partially offset this decrease in gross margin. A lesser percentage of revenue came from the logistics industry, which has relatively lower gross margins, and a greater percentage of revenue came from the consumer electronics industry, which has relatively higher gross margins. Further, the Company has increased prices, which has offset the impact of component cost inflation (not including broker-buy purchases) on our gross margin.</span></div><div style="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 the date of this report, we expect gross margin as a percentage of revenue for the first quarter of 2023 to be in the low-70% range, primarily as a result of the significant premiums the Company has paid to replenish inventories lost in the fire at our primary contract manufacturer's plant on June 7, 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">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-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 2022 increased by $5,761,000, or 4%, from the prior year as detailed in the table below (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.853%"><tr><td style="width:1.0%"></td><td style="width:80.891%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.909%"></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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RD&amp;E expenses in 2021</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%">135,372&#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%">Personnel-related costs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,060&#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%">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:400;line-height:100%">4,761&#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 currency 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%">(6,348)</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%">Incentive 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:400;line-height:100%">(4,453)</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:400;line-height:100%">3,741&#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%">RD&amp;E expenses in 2022</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%">141,133</span><span style="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%">RD&amp;E expenses increased primarily due to higher personnel-related costs resulting from headcount additions to support new product initiatives and salary increases provided to employees as part of our merit and promotion process. Stock-based compensation expense also increased from the prior year due to a higher level of stock-based grants at a higher average economic value, as well as the impact of a forfeiture rate true-up that resulted in higher 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%">These increases were partially offset by lower incentive compensation expense compared to the prior year due to weaker business performance. Relevant performance goals for incentive compensation plans are set at the beginning of each year, with the ability to earn upside if the goals are exceeded. In contrast to 2022, performance goals set for 2021 incentive bonuses were exceeded, resulting in a higher level of bonus expense recorded in 2021. The impact of foreign currency exchange rate changes further offset the increase to RD&amp;E expenses, as costs denominated in foreign currencies were translated into U.S. Dollars at a lower 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%">RD&amp;E expenses as a percentage of revenue was 14% in 2022 compared to 13% in 2021. We believe that a continued commitment to RD&amp;E activities is essential in order 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 investing cycles.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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: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 increased in 2022 by $2,753,000, or 1%, from the prior year as detailed in the table below (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:99.853%"><tr><td style="width:1.0%"></td><td style="width:80.891%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.909%"></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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">SG&amp;A expenses in 2021</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%">309,354&#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%">Personnel-related costs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,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="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%">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:400;line-height:100%">6,436&#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%">Travel 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%">5,666&#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%">Incentive 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:400;line-height:100%">(24,476)</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 currency 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%">(14,613)</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%">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:400;line-height:100%">5,628&#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%">SG&amp;A expenses in 2022</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%">312,107</span><span style="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%">SG&amp;A expenses increased primarily due to higher personnel-related costs resulting from headcount additions, primarily for sales personnel to support the Company's anticipated revenue growth, and salary increases provided to employees as part of our merit and promotion process. In addition to salaries and fringe benefits, these personnel-related costs included sales commissions and travel expenses related to the additional headcount. Stock-based compensation expense also increased from the prior year due to a higher level of stock-based grants at a higher average economic value, as well as the impact of a forfeiture rate true-up that resulted in higher expense. While travel expenses increased due to the number of sales personnel added, expenses also increased due to a higher level of travel activity as restrictions related to COVID-19 continued to ease.</span></div><div style="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 increases were partially offset by lower incentive compensation expenses than the prior year, which included sales commissions and incentive bonuses, primarily due to weaker business performance. Relevant performance goals for these plans are set at the beginning of each year, with the ability to earn upside if the goals are exceeded. In contrast to 2022, performance goals set for 2021 sales commissions and incentive bonuses were exceeded, resulting in a higher level of incentive compensation expenses recorded in 2021. The impact of foreign currency exchange rate changes further offset the increase to SG&amp;A expenses, as costs denominated in foreign currencies were translated into U.S. Dollars at a lower rate.</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 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. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to assess the damage, resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity.</span></div><div style="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 the fire, the Company recorded $48,339,000 in gross losses in 2022, related to $37,663,000 of Cognex-owned inventories, $8,709,000 of primarily prepayments related to Cognex-designated components that were owned by the contract manufacturer and other assets, and $1,967,000 related to deleveraging of costs related to our distribution centers.</span></div><div style="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 losses have been reduced by insurance proceeds received from the Company&#8217;s insurance carrier of $27,560,000 in the fourth quarter of 2022. Gross losses net of insurance recovery of $20,779,000 are presented in the caption &#8220;Loss from fire&#8221; 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%">As of December 31, 2022 and through the date of financial statement issuance, management cannot yet estimate additional recoveries that could be available from the contract manufacturer. Any future, additional recoveries in excess of recognized losses will be treated as gain contingencies and will be recognized when the gain is realized or realizable. There can be no assurance, however, that additional insurance coverage and/or recoveries from the contract manufacturer will be available to cover the net loss from the fire.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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:400;line-height:120%">Restructuring 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%">On December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#8217;s capabilities in defect detection, and accelerate our growth trajectory with electric vehicle battery manufacturers. In December 2022, following its acquisition of SAC, the Company performed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities resulted in charges of $1,657,000 in 2022. As of December 31, 2022, the majority of these restructuring actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring 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: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 Company recorded foreign currency losses of $1,837,000 in 2022 and $2,270,000 in 2021. Foreign currency gains and losses result primarily from the revaluation and settlement of assets and liabilities that 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.</span></div><div style="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 increased by $55,000, or 1%, from the prior year. The slight increase was due primarily t</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">o higher yields on investments, partially offset by lower average investment balances and changes in realized gains and losses</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%">The Company recorded other expense of $412,000 in 2022 and $591,000 in 2021.</span></div><div style="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 Company&#8217;s effective tax rate was 14% of pre-tax income in 2022, compared to 12% in 2021.</span></div><div style="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 increase in effective tax rate in 2022 primarily resulted from the impact of discrete tax items, including a decrease in tax benefits related to stock-based compensation, an increase in certain international tax reserves, and a net expense related to return-to-provision adjustments. These impacts were partially offset by discrete tax benefits related to audit settlements, a release in the valuation allowance, Global Intangible Low-Taxed Income ("GILTI") adjustments, and a rate revaluation on deferred state tax 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%">Excluding the impact of all discrete tax items, the Company&#8217;s effective tax rate was 16% of pre-tax income for both 2022 and 2021.</span></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%">Year Ended December&#160;31, 2021 Compared to Year Ended December&#160;31, 2020</span></div><div style="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-bottom:8pt;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 the year ended December 31, 2021 was $1,037,098,000 compared to $811,020,000 for the prior year, representing an increase of 28%. Revenue from customers in the logistics industry increased by approximately 65% from the prior year, with the most significant portion of this growth coming from e-commerce and omni-channel retailers. Higher sales from traditional brick-and-mortar retailers also contributed to growth in the logistics industry. </span></div><div style="margin-bottom:8pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Growth in the automotive, semiconductor, medical-related, and consumer products industries also contributed to the increase in total revenue. After declining for two consecutive years, revenue from customers in the automotive industry grew faster than the company average in 2021, due in part to electric vehicle investments. These increases were partially offset by a decrease in revenue from customers in the consumer electronics industry due to lower investment in smartphone manufacturing and other devices that we believe benefited from remote work conditions in 2020.</span></div><div style="margin-bottom:8pt;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 a geographic perspective, revenue from customers based in the Americas increased by 40% from the prior year driven primarily by higher revenue in the logistics industry. Revenue from customers in medical-related industries was also notably higher than the prior year.</span></div><div style="margin-bottom:8pt;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 customers based in Europe increased by 19% from the prior year. Changes in foreign currency exchange rates resulted in a higher level of reported revenue in 2021, as sales denominated in Euros were translated into U.S. Dollars at a higher rate. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Europe increased by 15% from the prior year. The increase came from customers in a variety of industries, most notably logistics, automotive, and consumer products, partially offset by lower revenue in the consumer electronics industry. The decline in revenue from consumer electronics was partially a result of procurement changes made by certain customers, shifting their purchases to China from Europe.</span></div><div style="margin-bottom:8pt;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 customers based in Greater China increased by 19% from the prior year. Changes in foreign currency exchange rates resulted in a higher level of reported revenue in 2021, as sales denominated in Chinese </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></span></div></div><div style="margin-bottom:8pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Renminbi were translated into U.S. Dollars at a higher rate. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Greater China increased by 12% from the prior year. The increase was driven primarily by higher revenue in the automotive and semiconductor industries, partially offset by lower revenue in the consumer electronics industry.</span></div><div style="margin-bottom:8pt;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 other countries in Asia increased by 24% from the prior year due primarily to higher revenue in the automotive, semiconductor, and consumer electronics industries.</span></div><div style="margin-bottom:8pt;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 Margin</span></div><div style="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 as a percentage of revenue decreased to 73% in 2021 compared to 75% in 2020. The decrease in gross margin percentage was primarily due to higher prices paid to purchase inventories in 2021, including higher costs for components and freight, due largely to global supply chain constraints. The decrease was also due to a greater percentage of total revenue coming from the logistics industry, which has relatively lower gross margins and included some comparatively lower margins from strategic logistics projects in 2021.</span></div><div style="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 unfavorable impact of higher inventory purchase prices and a higher percentage of logistics revenue was partially offset by manufacturing efficiencies related to the higher revenue level and lower provisions for excess and obsolete inventories as compared to the prior year. The higher provisions for excess and obsolete inventories in 2020 took into account the global economic conditions resulting from the COVID-19 pandemic.</span></div><div style="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-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 2021 increased by $4,390,000, or 3%, from the prior year as detailed in the table below (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.853%"><tr><td style="width:1.0%"></td><td style="width:80.891%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.909%"></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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RD&amp;E expenses in 2020</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%">130,982&#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 currency 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,919&#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%">Outsourced engineering services</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,464&#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%">Personnel-related costs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(517)</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%">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:400;line-height:100%">524&#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%">RD&amp;E expenses in 2021</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%">135,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;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%">RD&amp;E expenses increased due to foreign currency exchange rate changes, as costs denominated in foreign currencies were translated into U.S. Dollars at a higher rate. Higher spending on outsourced engineering services due to the timing of product development activities, including engineering prototypes for large sales opportunities, also contributed to the increase. These increases were partially offset by lower personnel-related costs due to a workforce reduction in the second quarter of 2020. Higher costs from annual salary increases and fringe benefits provided to employees, as well as headcount additions to support new product initiatives, partially offset the lower costs from the workforce reduction.</span></div><div style="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 was 13% in 2021 compared to 16% in 2020. We believe that a continued commitment to RD&amp;E activities is essential in order 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. This annual percentage is impacted by revenue levels and investing 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 increased in 2021 by $41,761,000, or 16%, from the prior year as detailed in the table below (in thousands). </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></span></div></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.853%"><tr><td style="width:1.0%"></td><td style="width:80.891%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.909%"></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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">SG&amp;A expenses in 2020</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%">267,593&#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%">Incentive 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:400;line-height:100%">15,709&#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%">Personnel-related costs</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,734&#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 currency 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%">6,420&#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%">Business system 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:10pt;font-weight:400;line-height:100%">2,798&#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%">Marketing programs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,599&#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%">Travel 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:400;line-height:100%">2,057&#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:400;line-height:100%">5,444&#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%">SG&amp;A expenses in 2021</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%">309,354</span><span style="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%">SG&amp;A expenses increased due to higher expenses related to annual incentive compensation plans, which include sales commissions and incentive bonuses. Relevant performance goals for these plans, as well as any changes to employee eligibility, are set at the beginning of each year, with the ability to earn upside if the goals are exceeded. Sales commissions were higher than the prior year primarily due to the higher business levels, which resulted in a greater portion of our sales team exceeding the performance goals set in their commission plans in 2021 versus 2020. Likewise, the performance goal set for 2021 incentive bonuses was exceeded based on the Company's operating income margin, with the same being true in 2020. However, incentive bonus accruals in 2021 were higher than the prior year primarily due to the impact of changes to employee eligibility, of which the most significant related to members of the Company's senior leadership team who were not eligible for 2020 incentive bonuses as part of the Company's restructuring 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:120%">Personnel-related costs increased due to higher costs from annual salary increases and fringe benefits provided to employees, as well as sales headcount additions in strategic growth areas of the business, partially offset by the impact of the workforce reduction that took place in the second quarter of 2020. Changes in foreign currency exchange rates also resulted in a higher level of expenses, as costs denominated in foreign currencies were translated into U.S. Dollars at a higher rate. Expenses were also higher due to investments the Company is making in business systems related to its sales process, including systems to help our sales team more efficiently manage customer relationships and sales opportunities. A portion of these costs was expensed as incurred, while the majority of these investments were accounted for as a capital asset that was placed into service in the first quarter of 2022. The Company also increased spending on marketing programs in an effort to generate future sales opportunities, particularly related to new product introductions, and incurred higher travel expenses as restrictions related to COVID-19 eased in certain regions.</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%">Restructuring and Intangible Asset Impairment 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%">On May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The Company recorded restructuring charges of $15,924,000 in 2020, as a result of actions related to the restructuring plan, which included a global workforce reduction of approximately 8% and office closures. In addition, the adverse impact of the COVID-19 pandemic triggered a review of long-lived assets for potential impairment in the second quarter of 2020. This review resulted in intangible asset impairment charges totaling $19,571,000 recorded in the second quarter of 2020.</span></div><div style="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 Company recorded foreign currency losses of $2,270,000 in 2021 and foreign currency gains of $3,697,000 in 2020. Foreign currency gains and losses result primarily from the revaluation and settlement of assets and liabilities that 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.</span></div><div style="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 $6,334,000, or 49%, from the prior year. The decrease was due primarily to lower yields on the Company's portfolio of debt securities, partially offset by higher invested balances.</span></div><div style="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 recorded other expense of $591,000 in 2021 and $309,000 in 2020. Other income (expense) includes fair value adjustments of contingent consideration liabilities arising from business acquisitions.</span></div><div style="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 Company&#8217;s effective tax rate was 12% of pre-tax income in 2021, compared to 6% in 2020.</span></div><div style="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 increase in effective tax rate in 2021 primarily resulted from the impact of discrete tax items, including a decrease in tax benefits related to stock-based compensation and return-to-provision adjustments. These impacts were partially offset by a decrease in tax expenses for certain international tax reserves.</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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">Excluding the impact of all discrete tax items, the Company&#8217;s effective tax rate was an expense of 16% of pre-tax income in 2021 and 17% of pre-tax income in 2020. The decrease in the effective tax rate excluding discrete tax items was due to the impact of higher estimated tax credits in 2021, partially offset by more of the Company's profits being earned and taxed in higher tax jurisdictions.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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 $854,250,000 as of December&#160;31, 2022. The Company has established guidelines relative to credit ratings, diversification, and maturities of its investments that maintain liquidity.</span></div><div style="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 requirements in 2022 were primarily met with positive cash flows from operations, the sale and maturity of investments, and the proceeds from stock option exercises. Cash requirements consisted of operating activities, the repurchase of common stock, the payment of dividends, capital expenditures, purchases of investments, and payments related to our acquisition of SAC on December 7, 2022. Cash flows from operating activities included the purchase of inventories intended to support higher business levels, secure key strategic components to meet customer demand, carry higher stocking levels to mitigate the Company's exposure to demand changes or supply disruptions, and replenish inventories destroyed by the fire on June 7, 2022 at the Company's primary contract manufacturer. Cash outlays in the first quarter of 2023 are planned to include incentive compensation payments that were earned and accrued 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%">Capital expenditures in 2022 totaled $19,677,000 and consisted primarily of computer hardware and software, manufacturing test equipment related to new product introductions, and improvements made to primarily the Company's distribution center in Southborough, Massachusetts. In 2021, the Company made investments in business systems related to its sales process, the majority of which were accounted for as a capital asset that was placed into service in the first quarter of 2022. Although the Company continues to make investments in its business systems related to its sales process, these investments are not expected to be material over the short or 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%">The Company's material cash requirements include contractual obligations related to inventory purchase commitments and leases. As of December 31, 2022, the Company had inventory purchase commitments of $50,942,000, with the majority payable within 12 months, and lease payment obligations of $44,336,000, with $9,473,000 payable within 12 months.</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%">In addition to the obligations described above, the following items may also result in future material uses of cash:</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">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 October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 1,215,000 shares at a cost of $51,036,000 in 2020, and 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 program. On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program. On March 3, 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 total cost of $87,314,000 in 2022, leaving a remaining balance of $412,686,000. 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:700;line-height:120%">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.055 per share in the first, second, and third quarters of 2020, $0.060 per share in the fourth quarter of 2020 and in the first, second, and third quarters of 2021, and $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022. The dividend was increased to $0.070 per share in the fourth quarter of 2022. Also, in the fourth quarter of 2020, an additional special cash dividend of $2.00 per share was declared and paid. Total dividends paid were $45,921,000 in 2022, $43,263,000 in 2021, and $390,508,000 in 2020, which included $351,428,000 paid for the special cash dividend. Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:107%">Business Acquisitions</span></div><div style="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 consideration for the 2019 acquisition of Sualab Co., Ltd. included deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent.</span></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:107%">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%">The Tax Cuts and Jobs Act of 2017 subjected unrepatriated foreign earnings to a one-time transition tax. During 2022, the Company paid $6,319,000 related to this one-time transition tax. As of December 31, 2022, the Company had a remaining balance payable of $44,010,000 and expects to continue making payments through 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 Company believes that its 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 style="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 Inflation Reduction Act ("IRA") was enacted into law on August 16, 2022. Included in the IRA was a provision to implement a 15% corporate alternative minimum tax on &#8220;adjusted financial statement income&#8221; for applicable corporations and a 1% excise tax on repurchases of stock. These provisions are effective for tax years beginning after December 31, 2022. We are in the process of evaluating the provisions of the IRA, but we do not currently believe the IRA will have a material impact on our reported results, cash flows, approach to stock repurchases, or financial position.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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: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 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. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation. These solutions are provided to customers in a variety of industries, including the consumer electronics and logistics industries. </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 objectively 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. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></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: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 objectively 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:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investments</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 of December&#160;31, 2022, the Company&#8217;s investment portfolio of debt securities totaled $672,876,000. 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) since these securities are designated as available-for-sale securities. As of December&#160;31, 2022, the Company&#8217;s portfolio of debt securities had a net unrealized loss of $26,817,000. Included in this net loss, were gross unrealized losses totaling $27,560,000, of which $12,718,000 were in a loss position for less than twelve months and $14,842,000 were in a loss position for greater than twelve months. Management currently intends to hold these securities to full value recovery at maturity.</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 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. 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. Credit losses on debt securities were not material in 2022, 2021, or 2020.</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%">Stock-Based Compensation</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 compensation expense for grants of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). 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.</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 use of valuation models requires us to make estimates of key assumptions such as expected volatility, expected term, risk-free interest rate, expected dividend yield, forfeiture rate and others. The estimate of these key assumptions is based on historical information and judgment regarding market factors and trends. As a result, if factors change and different assumptions are used, future stock-based compensation expense could be significantly different from what the Company recorded in the current period.</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:6pt;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. We classify interest and penalties related to uncertain tax positions in "Income tax expense" on the Consolidated Statements of Operations.</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 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 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:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Tax Cuts and Jobs Act of 2017 imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax. In 2019, the Company elected to account for the impact of the GILTI minimum tax in deferred taxes, a change from the Company&#8217;s initial election made in 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. Management has </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">29</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></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:400;line-height:120%">determined that this change is considered preferable, based on the conclusion that it appropriately matches the Company&#8217;s current and deferred income tax implications related to the change in tax structure noted below.</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 2019, the Company made changes to its international tax structure as a result of tax reform legislation enacted by the European Union that resulted in an intercompany sale of intellectual property based on the fair value of this intellectual property. Also in 2019, in connection with the acquisition of Sualab Co. Ltd., the Company migrated acquired intellectual property to certain subsidiaries to align with its corporate tax structure. Significant judgment was required to estimate the fair value of the migrated intellectual property, including management estimates related to forecasted future cash flows and discount rates.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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:6pt;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="id8333d090d7e467c8f0fde3d2520d2ed_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:6pt;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:6pt;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 3 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 (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><td style="width:17.228%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.603%"></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:1.0%"></td><td style="width:7.844%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.844%"></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:11.656%"></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:1.0%"></td><td style="width:6.964%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.968%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><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, 2022</span></td><td colspan="3" style="padding:0 1pt"></td><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, 2021</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><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></tr><tr style="height:5pt"><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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="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></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></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></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></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></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></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></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></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></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></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></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><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%">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:400;line-height:100%">60,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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%">64,174&#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%">0.9350&#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%">0.9350&#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%">65,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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%">73,748&#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%">0.8814&#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%">0.8814&#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%">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:400;line-height:100%">185,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%">9,480&#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%">19.51&#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%">19.51&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">140,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,842&#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%">20.46&#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%">20.46&#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%">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:400;line-height:100%">55,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%">7,619&#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:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.22</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:400;line-height:100%">7.22</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%">54,374&#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,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:2px 1pt;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.40</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:400;line-height:100%">6.40</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%">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:400;line-height:100%">700,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%">5,281&#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%">132.56&#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%">132.56&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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%">5,213&#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%">115.10&#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%">115.10&#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%">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:400;line-height:100%">1,590,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%">4,238&#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%">375.19&#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%">375.19&#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,355,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%">4,155&#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%">326.11&#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%">326.11&#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%">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:400;line-height:100%">3,445&#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,161&#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%">0.8279&#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%">0.8279&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,552&#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%">0.7403&#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%">0.7403&#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%">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:400;line-height:100%">1,730&#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%">1,278&#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%">1.35&#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%">1.35&#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,480&#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%">1,167&#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%">1.27&#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%">1.27&#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%">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:400;line-height:100%">1,120&#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,218&#160;</span></td><td 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:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.92</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:400;line-height:100%">0.92</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%">&#8212;&#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%">&#8212;&#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%">&#8212;&#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%">&#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><td colspan="3" style="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></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></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%">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:6pt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> of Content</a></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: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, and Mexican Peso. We estimate that approximately 52% of our sales in 2022 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:9pt;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, asset-backed securities, treasury bills, agency bonds, sovereign bonds, and municipal 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, 2022, the fair value of the Company&#8217;s portfolio of debt securities amounted to $672,876,000 with amortized cost amounts totaling $699,693,000, maturities that do not exceed six years, and a yield to maturity of 1.94%. 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%">The Company&#8217;s investment policy allows investment in debt securities with effective maturities up to ten years, however as of December&#160;31, 2022, 77% of the investment portfolio has 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, 2022, a sharp rise in interest rates should not 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><td style="width:18.870%"></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.171%"></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.171%"></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.171%"></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.171%"></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.176%"></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:10pt;font-weight:700;line-height:100%">Type of security</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: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><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><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><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: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><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><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: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><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><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%">547,596&#160;</span></td><td style="background-color:#ffffff;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: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%">543,045&#160;</span></td><td style="background-color:#ffffff;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: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%">538,495&#160;</span></td><td style="background-color:#ffffff;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: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%">533,945&#160;</span></td><td style="background-color:#ffffff;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: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%">529,394&#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:8pt;font-weight:400;line-height:100%">Asset-backed&#160;securities</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:8pt;font-weight:400;line-height:100%">61,450&#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:8pt;font-weight:400;line-height:100%">60,939&#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:8pt;font-weight:400;line-height:100%">60,429&#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:8pt;font-weight:400;line-height:100%">59,918&#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:8pt;font-weight:400;line-height:100%">59,407&#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:8pt;font-weight:400;line-height:100%">Treasury bills</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:8pt;font-weight:400;line-height:100%">56,485&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">56,016&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">55,546&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">55,077&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">54,608&#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:8pt;font-weight:400;line-height:100%">Agency bonds</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:8pt;font-weight:400;line-height:100%">16,126&#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:8pt;font-weight:400;line-height:100%">15,992&#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:8pt;font-weight:400;line-height:100%">15,858&#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:8pt;font-weight:400;line-height:100%">15,724&#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:8pt;font-weight:400;line-height:100%">15,590&#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></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%">Sovereign bonds</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:8pt;font-weight:400;line-height:100%">1,956&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">1,940&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">1,924&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">1,907&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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%">1,891&#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:8pt;font-weight:400;line-height:100%">Municipal bonds</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:8pt;font-weight:400;line-height:100%">635&#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:8pt;font-weight:400;line-height:100%">630&#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:8pt;font-weight:400;line-height:100%">624&#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:8pt;font-weight:400;line-height:100%">619&#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:8pt;font-weight:400;line-height:100%">614&#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></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 #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%">684,248</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><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: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%">678,562</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><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: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%">672,876</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><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: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%">667,190</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><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: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%">661,504</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></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_61"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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><td style="width:88.782%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.018%"></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:700;line-height:100%">Consolidated Financial Statements:</span></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"><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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_64"> Number </a><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:AuditorFirmId" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82MS9mcmFnOmIyZjkxOTllNGI2ODQwMDI5YmM1ZjI2M2EzYmMzZjdhL3RhYmxlOjQ2NGUwZjFhMDM3YzRhZmU4MTkzNzA5NzE5MTRkY2UzL3RhYmxlcmFuZ2U6NDY0ZTBmMWEwMzdjNGFmZTgxOTM3MDk3MTkxNGRjZTNfMS0wLTEtMS05NDg1My90ZXh0cmVnaW9uOjdiYWQxM2EyNWZmMTQ3YmRhODc0ZWU4NWRkODUwZDY4Xzc3_29c1cd46-4c0d-4e5c-b21d-c4e18653f491">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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_64">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="#id8333d090d7e467c8f0fde3d2520d2ed_67">Consolidated Statements of Operations for the Years Ended December&#160;31, 2022, 2021, and 2020</a></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="#id8333d090d7e467c8f0fde3d2520d2ed_67">35</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="#id8333d090d7e467c8f0fde3d2520d2ed_73">Consolidated Statements of Comprehensive Income for the Years Ended December&#160;31, </a><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_67">2022, 2021, and 2020</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="#id8333d090d7e467c8f0fde3d2520d2ed_73">36</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="#id8333d090d7e467c8f0fde3d2520d2ed_79">Consolidated Balance Sheets as of December&#160;31, 2022 and 2021</a></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="#id8333d090d7e467c8f0fde3d2520d2ed_79">37</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="#id8333d090d7e467c8f0fde3d2520d2ed_85">Consolidated Statements of Cash Flows for the Years Ended December&#160;31, </a><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_67">2022, 2021, and 2020</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="#id8333d090d7e467c8f0fde3d2520d2ed_85">38</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="#id8333d090d7e467c8f0fde3d2520d2ed_88">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December&#160;31, </a><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_67">2022, 2021, and 2020</a></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="#id8333d090d7e467c8f0fde3d2520d2ed_88">39</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="#id8333d090d7e467c8f0fde3d2520d2ed_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="#id8333d090d7e467c8f0fde3d2520d2ed_94">40</a></span></div></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;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"></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="#id8333d090d7e467c8f0fde3d2520d2ed_208">Schedule II &#8211; Valuation and Qualifying Accounts for the Years Ended December&#160;31, </a><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_67">2022, 2021, and 2020</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="#id8333d090d7e467c8f0fde3d2520d2ed_208">70</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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">32</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_64"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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:700;line-height:120%">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:107%">Board of Directors and Shareholders</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:107%">Cognex Corporation</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:115%">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, 2022 and 2021, 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, 2022, 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, 2022 and 2021, and the results of its operations and its cash flows for each of the three years in the period ended December 31, 2022, 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, 2022, 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 16, 2023 expressed an unqualified opinion.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:115%">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="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:107%">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) relate 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="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:107%">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 objectively 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 validation and that the agreed-upon specifications in the contract have been met relies on the use of management judgments and requires 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 </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">33</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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%">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 can be 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="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 solutions contracts, determination of validation and the timing of revenue recognition.</span></div><div style="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 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 key terms and provisions.</span></div><div style="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">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:18pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">/s/ GRANT THORNTON LLP</span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:174%">We have served as the Company&#8217;s auditor since 2007. </span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:174%">Boston, Massachusetts</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;16, 2023 </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">34</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_67"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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><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.938%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.122%"></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.831%"></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: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%">2022</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%">2021</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%">2020</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><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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNC0xLTEtMS05NDg1Mw_a03801b6-3a8e-4449-8425-dd759340e5af">1,006,090</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNC0zLTEtMS05NDg1Mw_df7b9bec-3b9e-47c6-81d3-399630dec7d4">1,037,098</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNC01LTEtMS05NDg1Mw_55f30b41-8920-4b5e-88f6-f4b42de7c987">811,020</ix:nonFraction>&#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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNS0xLTEtMS05NDg1Mw_bb145ed5-9049-46b4-80c9-907507de998c">284,185</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNS0zLTEtMS05NDg1Mw_ea71aae5-e767-43b5-9ecf-1a59597d4ac7">277,271</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNS01LTEtMS05NDg1Mw_568444e3-332f-444f-8fe9-2b97b28fcb1f">206,421</ix:nonFraction>&#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%">Gross margin</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNi0xLTEtMS05NDg1Mw_9b424e3a-0ec8-43d1-bdb1-4005aebc7571">721,905</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNi0zLTEtMS05NDg1Mw_d488c23d-2ef9-41f9-8e30-8083017178c4">759,827</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNi01LTEtMS05NDg1Mw_07a34b6b-2366-4205-a044-db46ec97ac29">604,599</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></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNy0xLTEtMS05NDg1Mw_88b3f877-8804-4637-a0f6-48dff0a626af">141,133</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNy0zLTEtMS05NDg1Mw_30c443c5-14be-485a-92ba-7ebf46dd5cdd">135,372</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNy01LTEtMS05NDg1Mw_44cfdaa2-c3bf-476f-a446-e4d02bf5ab8a">130,982</ix:nonFraction>&#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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOC0xLTEtMS05NDg1Mw_309772ed-ddd7-4bc5-83aa-af66092cb748">312,107</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOC0zLTEtMS05NDg1Mw_a273f4bd-5e08-4824-a6c1-3e956938d142">309,354</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOC01LTEtMS05NDg1Mw_2dfc17fb-6db6-4c55-862b-5831cb13ce1e">267,593</ix:nonFraction>&#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%">Loss 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:LossFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0xLTEtMS0xMDUzNzg_a498bc53-8996-4878-82c9-0b0754cb0e73">20,779</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:LossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0zLTEtMS0xMDUzNzg_fb69454d-92a8-4cb7-bd4c-5577557837c8">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:LossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS01LTEtMS0xMDUzNzg_d45ca5d0-9e2d-46c7-986d-9b5cd0028f47">&#8212;</ix:nonFraction>&#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%">Restructuring charges (Note 23)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0xLTEtMS05NDg1Mw_97edc93f-cbaf-4673-97c4-268413df319c">1,657</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0zLTEtMS05NDg1Mw_2be800fb-ac28-41c0-93ed-ee4717f42ffc">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS01LTEtMS05NDg1Mw_598ac4da-1d78-4e74-93dd-68f5da26adf7">15,924</ix:nonFraction>&#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%">Intangible asset impairment charges (Note 9)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTAtMS0xLTEtOTQ4NTM_237df983-d32c-4633-b032-caa2f483cdb1">&#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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTAtMy0xLTEtOTQ4NTM_430dcd5c-d154-4108-b55b-f122ff67e13c">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTAtNS0xLTEtOTQ4NTM_368f045c-493f-4493-98fd-ece71bc6bd30">19,571</ix:nonFraction>&#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%">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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTEtMS0xLTEtOTQ4NTM_10b2de9c-76b2-46f1-b6ae-67b2db25a370">246,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;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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTEtMy0xLTEtOTQ4NTM_439c9cb0-2329-4e41-8a04-0494c2267dd1">315,101</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTEtNS0xLTEtOTQ4NTM_352c63fa-0818-44df-a008-fa0e2be0b2d9">170,529</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></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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTItMS0xLTEtOTQ4NTM_5ea4c2cf-f38a-473a-a986-6d18cf1d4221">1,837</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTItMy0xLTEtOTQ4NTM_60be7996-f301-434b-aa54-7c309236cc12">2,270</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTItNS0xLTEtOTQ4NTM_f96fc1d5-fde7-44a6-8063-668b36720a78">3,697</ix:nonFraction>&#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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTMtMS0xLTEtOTQ4NTM_2e0100a7-a03c-4121-b42e-46146318ef8d">6,715</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTMtMy0xLTEtOTQ4NTM_d7c052cb-bc68-4a94-b204-c0c1333b65a0">6,660</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTMtNS0xLTEtOTQ4NTM_e0702a10-a853-4924-ac7b-e5deec26ada7">12,994</ix:nonFraction>&#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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTQtMS0xLTEtOTQ4NTM_26a66c54-71c9-4dbe-bd77-9dcf38f8e545">412</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTQtMy0xLTEtOTQ4NTM_fb401717-1219-479b-8d0b-a9c69cc82b7b">591</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTQtNS0xLTEtOTQ4NTM_787b7436-8e93-42f3-9807-bd92bd86c2b4">309</ix:nonFraction>)</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 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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTUtMS0xLTEtOTQ4NTM_f0b8dd0d-f400-4dba-9647-56b8a5dee381">250,695</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTUtMy0xLTEtOTQ4NTM_d34583c6-4aab-4c14-8256-abe2f7dcab6c">318,900</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTUtNS0xLTEtOTQ4NTM_8ceb9e22-c547-4a9a-81d1-0546a69b14f8">186,911</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></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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTYtMS0xLTEtOTQ4NTM_b9d59d6d-8677-4fba-8463-d736c983af9a">35,170</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTYtMy0xLTEtOTQ4NTM_310b8389-afd1-4f0f-b341-852197ec00d5">39,019</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTYtNS0xLTEtOTQ4NTM_f0ebb66f-5082-4493-853a-d8f69d261420">10,725</ix:nonFraction>&#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;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:#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTktMS0xLTEtOTQ4NTM_e05eab04-12cd-45dd-994c-b6a18e0874b5">215,525</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTktMy0xLTEtOTQ4NTM_e6e0e78b-46ff-477d-a889-c97ccc66a81f">279,881</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTktNS0xLTEtOTQ4NTM_a169af78-d9d5-4462-bc6b-0afc252b8fc5">176,186</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></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #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:3pt double #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:3pt double #000000;padding:0 1pt"></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%">Net Income per weighted-average common and common-equivalent share:</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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="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%">Basic</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjQtMS0xLTEtOTQ4NTM_7e752f54-3952-4d0b-9bc1-a0d1784ff0ed">1.24</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjQtMy0xLTEtOTQ4NTM_624f9279-ddfb-496d-bc9d-aad01427b27d">1.59</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjQtNS0xLTEtOTQ4NTM_32c01e5c-e75a-4bc0-a550-5fdb3305b9b0">1.02</ix:nonFraction>&#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%">Diluted</span></td><td style="background-color:#ffffff;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-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjctMS0xLTEtOTQ4NTM_9c2796b2-bff2-45fb-8cc3-a4b500e3c676">1.23</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: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-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:#ffffff;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjctMy0xLTEtOTQ4NTM_25a085d4-2ac8-487e-9947-3477ec65a759">1.56</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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-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:#ffffff;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjctNS0xLTEtOTQ4NTM_c4d3f29e-9612-444b-98b7-ba5995520748">1.00</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:8pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #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:3pt double #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:3pt double #000000;padding:0 1pt"></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%">Weighted-average common and common-equivalent shares outstanding:</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 7.75pt;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:#cceeff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzAtMS0xLTEtOTQ4NTM_23231e28-f6a3-4e8f-8036-8be7b0ebc74c">173,407</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzAtMy0xLTEtOTQ4NTM_14219f86-8d69-4178-9af4-62d456cca17c">176,463</ix:nonFraction>&#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%"><ix:nonFraction unitRef="shares" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzAtNS0xLTEtOTQ4NTM_76dac7fb-c1ce-471d-8165-c1b2486a4e4d">173,489</ix:nonFraction>&#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%">Diluted</span></td><td colspan="2" style="background-color:#ffffff;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzEtMS0xLTEtOTQ4NTM_5b67161d-9d16-4ffc-a935-58c722b567a6">174,869</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: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="2" style="background-color:#ffffff;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzEtMy0xLTEtOTQ4NTM_d35df81f-df41-4af9-b35e-3f20d2f69648">179,916</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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="2" style="background-color:#ffffff;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzEtNS0xLTEtOTQ4NTM_71454d98-0c64-48b6-9955-d3a829eb293b">176,592</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:11pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #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:3pt double #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:3pt double #000000;padding:0 1pt"></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%">Cash dividends per common share</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMS0xLTEtOTQ4NTM_71ac4f79-0b47-4b1c-9203-cf27881a3c02">0.265</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMy0xLTEtOTQ4NTM_28a70386-0689-43c3-9d6a-e7fb85b1e3ce">0.245</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtNS0xLTEtOTQ4NTM_6a9764f9-eb8c-4325-85b1-672921555b0d">2.225</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #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:3pt double #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:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">35</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_73"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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:'Times New Roman',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><td style="width:59.222%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.637%"></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:11.637%"></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:11.640%"></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: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%">2022</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%">2021</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%">2020</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMy0xLTEtMS05NDg1Mw_e05eab04-12cd-45dd-994c-b6a18e0874b5">215,525</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMy0zLTEtMS05NDg1Mw_e6e0e78b-46ff-477d-a889-c97ccc66a81f">279,881</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMy01LTEtMS05NDg1Mw_a169af78-d9d5-4462-bc6b-0afc252b8fc5">176,186</ix:nonFraction>&#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 comprehensive income (loss), net of tax:</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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="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 style="height:15pt"><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%">Available-for-sale investments:</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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjpjMDkyOGQ2MGJmZDQ0NmUwOTc2ODkzNzVjZTIyMGUxNV80Ng_b24c7a2b-96f5-4f02-9648-3a5d7a780056">5,943</ix:nonFraction>), $(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjpjMDkyOGQ2MGJmZDQ0NmUwOTc2ODkzNzVjZTIyMGUxNV81MA_ccabaea2-67ca-4a17-9f44-fbe680a3dafa">2,206</ix:nonFraction>), and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjpjMDkyOGQ2MGJmZDQ0NmUwOTc2ODkzNzVjZTIyMGUxNV81OA_45837a24-528d-4c1f-8ffd-e1587950cf84">981</ix:nonFraction> in 2022, 2021, and 2020, 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="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMS0xLTEtOTQ4NTM_2f146e76-b7e1-45ee-8346-1cdabffe0c01"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMS0xLTEtOTQ4NTM_f411238b-d556-48ef-87d8-0c74344861cd">17,152</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMy0xLTEtOTQ4NTM_7453aead-eac1-4dce-bb98-1567f5828645">7,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtNS0xLTEtOTQ4NTM_faa46adf-7913-42a8-bf9a-debd2c787272">6,478</ix:nonFraction>&#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 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="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtMS0xLTEtOTQ4NTM_5134a53b-b4bd-45bd-9005-2f3b45101be3"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtMS0xLTEtOTQ4NTM_7df3b38b-9eed-451c-91c9-dad594f394f1">182</ix:nonFraction></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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtMy0xLTEtOTQ4NTM_a89530c1-d541-45a1-b174-9e89bfe2b96d">236</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtNS0xLTEtOTQ4NTM_eaca3bd1-93b0-47c0-b17e-5025b545c441">4,119</ix:nonFraction>)</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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTQtMS0xLTEtOTQ4NTM_99a2133a-6eec-49d6-819f-9def9b92b902">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"></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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTQtMy0xLTEtOTQ4NTM_97bd4db7-750f-42ec-b07a-b04bdd6af584">7,388</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTQtNS0xLTEtOTQ4NTM_65aaabf3-dd32-44fc-9cda-f8ab7002e442">2,359</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></tr><tr style="height:12pt"><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%">Foreign currency translation adjustments:</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 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="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctMS0xLTEtOTQ4NTM_1daa9da4-dff6-4092-bb9f-bba1fdb4e221"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctMS0xLTEtOTQ4NTM_5e2fa5bb-1801-41b6-8319-00845adbd766">4,385</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctMy0xLTEtOTQ4NTM_6738aad5-299f-4246-a3eb-ac1163c298f7">6,753</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctNS0xLTEtOTQ4NTM_1f58ade5-3e21-4694-9285-f9209ab6c19d">1,115</ix:nonFraction>&#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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTgtMS0xLTEtOTQ4NTM_406bacc5-7a18-4fc3-80a7-535f0fafacfd">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"></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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTgtMy0xLTEtOTQ4NTM_b7587fd0-def9-42c0-854a-4f8a32f4da0f">6,753</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTgtNS0xLTEtOTQ4NTM_903274f4-5db0-4afe-af7e-496a7edc9efd">1,115</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></tr><tr style="height:15pt"><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;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjAtMS0xLTEtOTQ4NTM_0d3e0d11-cbac-4b08-88e3-39b605afd935">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"></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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjAtMy0xLTEtOTQ4NTM_e39e7611-f1bd-4b14-9fbc-010ee1a73d19">14,141</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjAtNS0xLTEtOTQ4NTM_a19ec637-568e-402d-b374-e24b881b5e9f">3,474</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></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjEtMS0xLTEtOTQ4NTM_697b7e1f-b82f-47ce-8a2c-62a5d92d32b0">194,170</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjEtMy0xLTEtOTQ4NTM_175819a4-6d0c-4dd9-b329-378a4a15a027">265,740</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjEtNS0xLTEtOTQ4NTM_6aca1a40-81a8-46ce-841d-0174aba8c81c">179,660</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></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">36</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_79"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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:'Times New Roman',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><td style="width:71.560%"></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.206%"></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: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><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%">2022</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:9pt;font-weight:400;line-height:100%">2021</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><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="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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNS0xLTEtMS05NDg1Mw_db0c2f8b-3d51-4b3d-9ce8-152b6c2a06b0">181,374</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><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: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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNS0zLTEtMS05NDg1Mw_6ab4059a-15ec-4240-8752-04bce41c62bf">186,161</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzQz_951e75db-8344-4d16-ad34-3537be1dc396">223,545</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzUw_e5019456-56bc-48eb-9c7b-e591d2612a2c">137,124</ix:nonFraction> in 2022 and 2021, respectively, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzExNg_0d9c0b99-ef73-4aa0-ad9b-ae4fa9982591"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzExNg_0e17de06-acce-4eaf-8d12-5ab84d6dad0d">0</ix:nonFraction></ix:nonFraction> in 2022 and 2021</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0xLTEtMS05NDg1Mw_2db00c3f-d57b-4c1b-96c1-8eecc81d662d">218,759</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0zLTEtMS05NDg1Mw_72737ba7-b69b-40ad-bc34-4a666855eef2">137,455</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmI4NmU3MGZhNjc2NjRlYjVhZWVkMzAxZGFiZDYwMDBkXzU2_a3d3c554-c6fa-4f68-8314-e07162a47bd1">730</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmI4NmU3MGZhNjc2NjRlYjVhZWVkMzAxZGFiZDYwMDBkXzYz_e081e593-7b5f-426e-9ccb-a2e28743c632">776</ix:nonFraction> in 2022 and 2021, 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0xLTEtMS05NDg1Mw_051bfa7d-f631-4095-93f1-af9873734342">125,417</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0zLTEtMS05NDg1Mw_b7ea835b-8eb9-4d14-bcb6-e444f4d641cd">130,348</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOC0xLTEtMS05NDg1Mw_d0456dc4-b8fc-4994-870a-9bfb69199b8e">2,179</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOC0zLTEtMS05NDg1Mw_a5b32b6b-26ad-4367-b443-ce956320757e">3,990</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOS0xLTEtMS05NDg1Mw_42f0f1dc-82c8-4636-a605-b75c1c6c06a3">122,480</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOS0zLTEtMS05NDg1Mw_7ac7fd6d-e6e7-4bce-8640-45b523e8f133">113,102</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTAtMS0xLTEtOTQ4NTM_f0539712-d0d4-481f-9eac-232d589f825d">67,490</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTAtMy0xLTEtOTQ4NTM_d578d05d-bd96-4c71-8f16-520ce6882fba">68,742</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTEtMS0xLTEtOTQ4NTM_899fc490-ef22-48a5-8fdd-189da7fb43a8">717,699</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTEtMy0xLTEtOTQ4NTM_6f051e80-9892-4a8b-8c0b-05849c585c66">639,798</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></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl80Nw_7d98bfd7-ea68-4c32-871b-5be73ff0465a">476,148</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl81NA_3074dbbe-a159-4ceb-9059-7c46f41cf778">587,981</ix:nonFraction> in 2022 and 2021, respectively, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl8xMjA_35a43180-bcbc-4472-844d-226b319aed77"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl8xMjA_9dd6bde6-99de-4e85-88dc-aeff80854c77">0</ix:nonFraction></ix:nonFraction> in 2022 and 2021</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMS0xLTEtOTQ4NTM_a9059490-de3a-49e1-8923-e1af4169cc07">454,117</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMy0xLTEtOTQ4NTM_9c8c742e-99db-4adc-a533-88c491e90a40">583,748</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTMtMS0xLTEtOTQ4NTM_0bfb1ccf-859a-4fb1-8027-0b77c5f35682">79,714</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTMtMy0xLTEtOTQ4NTM_683848b9-d15f-4131-853e-ff72c9b4108b">77,546</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTQtMS0xLTEtOTQ4NTM_74068664-1461-41b8-b287-c59301c03bcf">37,682</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTQtMy0xLTEtOTQ4NTM_ff15ee84-703b-4faf-b775-136deecc88e9">23,157</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTUtMS0xLTEtOTQ4NTM_454ec042-525d-499e-bf56-e8f08231c568">242,630</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTUtMy0xLTEtOTQ4NTM_7a2e9218-b0cb-4601-82c8-68f09810c5dc">241,713</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTYtMS0xLTEtOTQ4NTM_f82c0236-a431-4614-860e-43013726aa76">12,414</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTYtMy0xLTEtOTQ4NTM_7bb8682e-738a-4cf5-8320-c4f9c68c8aae">11,888</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredIncomeTaxAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTctMS0xLTEtOTQ4NTM_688d5e71-edfe-4da6-8637-4757d89282cd">407,241</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredIncomeTaxAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTctMy0xLTEtOTQ4NTM_677b89b8-a8fd-42d0-805e-fcd7b8639c85">418,570</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTgtMS0xLTEtOTQ4NTM_f6dfb410-d6f4-40a0-8584-6c5e92acbc66">6,643</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTgtMy0xLTEtOTQ4NTM_e3c73615-9e11-4a27-b072-67d44dbccdb6">7,242</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTktMS0xLTEtOTQ4NTM_07757882-c4d3-4f32-ab51-b0a8931be09d">1,958,140</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><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: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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTktMy0xLTEtOTQ4NTM_18144418-3a15-4bb4-a51e-724a78659df8">2,003,662</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></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></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><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"><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><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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjMtMS0xLTEtOTQ4NTM_30b0d5e7-9e61-4ea4-b5a2-9ecc1c4aef55">27,103</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><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: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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjMtMy0xLTEtOTQ4NTM_ffa8387b-6457-4fd0-b878-f6b6e2a53370">44,051</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjQtMS0xLTEtOTQ4NTM_61acddc1-f785-4711-9585-b9f5fb615e6b">93,235</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjQtMy0xLTEtOTQ4NTM_7565ffc2-5a63-4f29-b2d6-bdf273d83f9f">92,432</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedIncomeTaxesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjUtMS0xLTEtOTQ4NTM_7bbd7e04-b7fe-48a8-a28d-4273807f255f">18,129</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedIncomeTaxesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjUtMy0xLTEtOTQ4NTM_0ad8d25a-673c-4420-9b15-8280c7eb5687">8,577</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjYtMS0xLTEtOTQ4NTM_ab685036-43db-4ffa-8587-aa6630942abd">40,787</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjYtMy0xLTEtOTQ4NTM_43c87e9f-6a00-4b75-852b-ec7248936050">35,743</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjctMS0xLTEtOTQ4NTM_2a1947fb-360c-4829-acac-ccb3de419312">8,454</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjctMy0xLTEtOTQ4NTM_54959a8a-9623-44dd-befc-2fb2110a4c03">7,786</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjgtMS0xLTEtOTQ4NTM_4fe99310-b8ba-43dc-a993-b09a26df433a">187,708</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjgtMy0xLTEtOTQ4NTM_e989b9e9-8fc3-45a8-ae57-b9755bf15f33">188,589</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></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjktMS0xLTEtOTQ4NTM_6dd2ab7f-581b-42f9-956c-44c9d63a4326">31,298</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjktMy0xLTEtOTQ4NTM_6d2c2733-ea24-4e42-9d7e-e41155064ad2">17,795</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzAtMS0xLTEtOTQ4NTM_e7884f76-dc57-44f2-84e1-5d330bcaf9f5">249,961</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzAtMy0xLTEtOTQ4NTM_deaecae3-cd9e-47ec-8355-165d3b2233ef">293,769</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzEtMS0xLTEtOTQ4NTM_356da1ec-b9dc-4531-b779-2eb24df5b6e3">15,866</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzEtMy0xLTEtOTQ4NTM_86c726c5-4e4c-471d-a7fb-6dccd0e46436">14,780</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedIncomeTaxesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzItMS0xLTEtOTQ4NTM_3ca5b381-82b9-4fd9-ba73-7a75c6dd98e2">33,008</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedIncomeTaxesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzItMy0xLTEtOTQ4NTM_ea032e6b-ac72-4c20-ab34-b25692b3fcb9">43,160</ix:nonFraction>&#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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzMtMS0xLTEtOTQ4NTM_dc1dc3f6-3b46-410e-befe-1717b780ae29">1,905</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzMtMy0xLTEtOTQ4NTM_d609f367-b505-4d82-b5b1-c22277cd2f60">15,476</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzQtMS0xLTEtOTQ4NTM_d61ccd62-2037-47c3-afa7-63a8feb5bccb">519,746</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzQtMy0xLTEtOTQ4NTM_2799ab3d-1d5e-4928-8ec3-7b459924c9a2">573,569</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></tr><tr style="height:12pt"><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"><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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzYtMS0xLTEtOTQ4NTM_7054eff8-c627-4014-9c0d-96f50c243ad0"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzYtMy0xLTEtOTQ4NTM_988748dc-e3d7-4693-bee1-8608fa6cb349"></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><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"><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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMTc_bc4029f7-3933-4d60-a5af-4b46c5754cb3"><ix:nonFraction unitRef="usdPerShare" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMTc_c8061de0-456a-42a9-a58a-a80af6731677">0.01</ix:nonFraction></ix:nonFraction> par value - Authorized: <ix:nonFraction unitRef="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMjQ_7dd2c4f5-d33f-46ce-9e6d-51bbc16f39ae"><ix:nonFraction unitRef="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMjQ_bd9d1eda-1c0b-4034-81b9-0f33793cb3c1">400</ix:nonFraction></ix:nonFraction> shares in 2022 and 2021, respectively, <ix:nonFraction unitRef="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt-sec:numwordsen" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_72bc91c9-eb4c-4eff-b9fa-9a50f3bd6ac5"><ix:nonFraction unitRef="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt-sec:numwordsen" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_82ed88d3-1c71-4d62-9632-9aa925f4b9af"><ix:nonFraction unitRef="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt-sec:numwordsen" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_9b5b2c9d-9879-4d68-a6b4-9deebe6ec421"><ix:nonFraction unitRef="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt-sec:numwordsen" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_c9c15a5d-5461-41a8-b345-2bcc12f5b294">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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:PreferredStockValueOutstanding" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMS0xLTEtOTQ4NTM_bb78021c-93be-4ce4-9574-aae71e07f021">&#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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:PreferredStockValueOutstanding" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMy0xLTEtOTQ4NTM_9fdfb9d3-6573-473b-8419-f0e320d9a8d0">&#8212;</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQxMDE_40ea117d-56a0-4da9-9ef8-24a3b4422e6a"><ix:nonFraction unitRef="usdPerShare" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQxMDE_9b3d7737-3f6a-483f-9380-6b63b89d3f0d">0.002</ix:nonFraction></ix:nonFraction> par value &#8211; Authorized: <ix:nonFraction unitRef="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwNjQ_6721727d-cf91-49eb-9287-7a1c9d33c1ec"><ix:nonFraction unitRef="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwNjQ_ff901b6a-e3a1-446b-90be-78c08c39784e">300,000</ix:nonFraction></ix:nonFraction> shares in 2022 and 2021, respectively, issued and outstanding: <ix:nonFraction unitRef="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwODM_45768753-a7a9-4129-a139-b844aff7b5ab"><ix:nonFraction unitRef="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwODM_81c169ec-c26c-4ee9-9a99-7cd456dd799b">172,631</ix:nonFraction></ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwOTM_0252a484-07ae-4cd3-b2b3-1f112755e16c"><ix:nonFraction unitRef="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwOTM_1ccd91d6-9d5d-4bc7-a8f8-69cde6aa0e22">175,481</ix:nonFraction></ix:nonFraction> shares in 2022 and 2021, 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMS0xLTEtOTQ4NTM_bde9533f-cd33-4630-9052-d5d3ceb5be15">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:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMy0xLTEtOTQ4NTM_37991a25-e45b-479d-bd57-6417a8d275f8">351</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AdditionalPaidInCapitalCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDAtMS0xLTEtOTQ4NTM_e5b684e1-72b7-422e-a24b-f665285ceff9">979,167</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AdditionalPaidInCapitalCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDAtMy0xLTEtOTQ4NTM_14f945b9-1a02-4164-abf0-b9098f21c8c3">914,802</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDEtMS0xLTEtOTQ4NTM_992a66c0-9051-4faa-b79d-cbab3d3af388">528,179</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDEtMy0xLTEtOTQ4NTM_ae6fe070-adff-4364-869c-3719ad08dec3">562,882</ix:nonFraction>&#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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDItMS0xLTEtOTQ4NTM_897ee553-0903-422b-9774-dfa31cab5d65">69,297</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDItMy0xLTEtOTQ4NTM_32df4f9c-bbfa-4acb-b639-4226ca2e06c6">47,942</ix:nonFraction>)</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 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDMtMS0xLTEtOTQ4NTM_e1efa4dd-6613-42a8-81e9-49969b2137ac">1,438,394</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDMtMy0xLTEtOTQ4NTM_84927802-408e-4d3c-9f96-7639abf3645c">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"></td></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDQtMS0xLTEtOTQ4NTM_00a1c494-46b7-4610-be0a-80693d00c767">1,958,140</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><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: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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDQtMy0xLTEtOTQ4NTM_9f266a3e-f4a0-4c26-a460-c43d3cf4d2f0">2,003,662</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></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">37</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_85"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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:'Times New Roman',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><td style="width:66.202%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.310%"></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:9.310%"></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:9.312%"></td><td style="width:0.1%"></td></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><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%">2022</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:9pt;font-weight:400;line-height:100%">2021</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:9pt;font-weight:400;line-height:100%">2020</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><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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNC0xLTEtMS05NDg1Mw_e05eab04-12cd-45dd-994c-b6a18e0874b5">215,525</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><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: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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNC0zLTEtMS05NDg1Mw_e6e0e78b-46ff-477d-a889-c97ccc66a81f">279,881</ix:nonFraction>&#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: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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNC01LTEtMS05NDg1Mw_a169af78-d9d5-4462-bc6b-0afc252b8fc5">176,186</ix:nonFraction>&#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: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><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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNy0xLTEtMS05NDg1Mw_14c8aa78-f876-4e63-a09e-4ebb98850a08">54,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;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNy0zLTEtMS05NDg1Mw_71ed61bf-22c3-48c1-8439-5f132c46bf56">43,774</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNy01LTEtMS05NDg1Mw_6800c9e3-98a8-423c-b36b-3a02577c4f58">42,661</ix:nonFraction>&#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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOC0xLTEtMS05NDg1Mw_9dfc4fdd-3a50-4ef6-adfa-36886fe2b48d">16,347</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOC0zLTEtMS05NDg1Mw_eb7eb78c-8d68-4d2e-bed5-411dcb171546">16,616</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOC01LTEtMS05NDg1Mw_6c39feb3-e686-4bf4-ba29-5ad2d78cab5e">22,139</ix:nonFraction>&#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 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 style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOS0xLTEtMS05NDg1Mw_82948e54-10e6-4d87-b908-ea9e5e611cfd">19</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOS0zLTEtMS05NDg1Mw_aa36e5cb-212d-4496-88e0-36796033b2a0">33</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOS01LTEtMS05NDg1Mw_066a9bf4-62ab-4e5d-800f-319532815db9">1,817</ix:nonFraction>&#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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTAtMS0xLTEtOTQ4NTM_a79507b7-7d1d-43a2-9468-1ec5bc4c9058">3,274</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTAtMy0xLTEtOTQ4NTM_994eec85-3eae-434d-b8e9-07faf9650666">3,667</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTAtNS0xLTEtOTQ4NTM_7b75dd69-9414-431a-89fb-abca1c2d8f45">4,364</ix:nonFraction>&#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 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%">Intangible asset impairment 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:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTEtMS0xLTEtOTQ4NTM_8d0c3ba3-22a1-43e3-983e-e3166c2ee90a">&#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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTEtMy0xLTEtOTQ4NTM_3db5fc61-531a-4c66-a84e-01c7f4ba7f9b">&#8212;</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTEtNS0xLTEtOTQ4NTM_5adfdb22-068f-445c-b585-67063597e467">19,571</ix:nonFraction>&#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 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:#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMS0xLTEtMTA5Nzc2_7967e8a8-9182-4458-8b64-227f46a74e65">46,372</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMy0xLTEtMTA5Nzc2_1ef7accc-ff2d-458f-80fe-befd4e09ea34">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItNS0xLTEtMTA5Nzc2_b6996c04-5367-40ab-ace6-5f3d9351a758">&#8212;</ix:nonFraction>&#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 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:#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMS0xLTEtOTQ4NTM_68c4d55b-5193-47b2-a107-9b2d48322ac8">3,084</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMy0xLTEtOTQ4NTM_02efa3a0-40a9-4768-aa7f-40c12ffcb177">2,573</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItNS0xLTEtOTQ4NTM_cc14a63c-cdc1-4e3a-b25e-e75ba28b43ab">9,908</ix:nonFraction>&#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 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 asset impairment 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:OperatingLeaseImpairmentLoss" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTMtMS0xLTEtOTQ4NTM_1a936964-cdb0-4d8d-8b60-96bd9645dd3a">&#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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OperatingLeaseImpairmentLoss" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTMtMy0xLTEtOTQ4NTM_cc788e49-072e-43dc-b723-2a9fa78d383b">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OperatingLeaseImpairmentLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTMtNS0xLTEtOTQ4NTM_3e3f2d13-ff2a-4b4d-961e-f63f2ca1258f">3,427</ix:nonFraction>&#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 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:#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTQtMS0xLTEtOTQ4NTM_2052c93d-614d-420f-b2de-abea6f6621d9">4,968</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTQtMy0xLTEtOTQ4NTM_afadff12-5e3c-4cd6-8feb-dc86b2c31fea">4,887</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTQtNS0xLTEtOTQ4NTM_8dfa158d-c625-49c5-9a72-147315b4e8c8">1,274</ix:nonFraction>&#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 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:#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTUtMS0xLTEtOTQ4NTM_84d9574f-7fde-4479-a684-a74e1b013191">182</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTUtMy0xLTEtOTQ4NTM_591f4620-5e66-47b1-bcf9-c5df82f12acf">236</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:GainLossOnSaleOfInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTUtNS0xLTEtOTQ4NTM_488bfbc1-503f-4e9c-b2e9-d7c4f0851253">4,119</ix:nonFraction>)</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 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%">Revaluation of contingent consideration</span></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTYtMS0xLTEtOTQ4NTM_cd964109-6006-4db7-b2f5-43b829d957bc">&#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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTYtMy0xLTEtOTQ4NTM_2bd08d28-feba-415d-99c3-c95d7a85e497">&#8212;</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTYtNS0xLTEtOTQ4NTM_10b868bd-93be-482c-a2f7-0a593f3a203a">114</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTctMS0xLTEtOTQ4NTM_a20e8c92-82a6-4fa1-8f2b-70f949804c56">27,338</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTctMy0xLTEtOTQ4NTM_b032f8a4-5da8-461e-91a1-c53e9271edda">3,118</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTctNS0xLTEtOTQ4NTM_2f3b36f5-a6b4-4e75-a116-8492a8ab98b3">3,353</ix:nonFraction>)</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: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><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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTktMS0xLTEtOTQ4NTM_b5e3d805-0b0d-4b53-a60e-2a2cdfa595b3">3,454</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTktMy0xLTEtOTQ4NTM_b7077f35-d1ea-4d5a-9864-73af4f7b1a17">4,503</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTktNS0xLTEtOTQ4NTM_27c46f83-c4ab-4116-9830-77d6025b730d">21,285</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjAtMS0xLTEtOTQ4NTM_ae3952f4-fc0c-4682-90ec-70f93aeaab0f">1,806</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjAtMy0xLTEtOTQ4NTM_f08a214f-0db6-4602-b539-4c087af8f7e9">1,637</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjAtNS0xLTEtOTQ4NTM_8c047f77-9f51-470c-a0c6-fd0c8ebd4dbb">848</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjEtMS0xLTEtOTQ4NTM_7a7f8586-5722-47a3-8a5f-98ff07457286">48,934</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjEtMy0xLTEtOTQ4NTM_312e05ba-6c7f-4f32-904d-52a700634325">54,920</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjEtNS0xLTEtOTQ4NTM_fc391bc8-19d9-444e-81af-14049ef7076d">10,319</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjItMS0xLTEtOTQ4NTM_e69b203c-27b2-4d81-8bd6-153ad7356112">6,998</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjItMy0xLTEtOTQ4NTM_b743af5d-08c4-480a-9820-0a8fba805292">32,342</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjItNS0xLTEtOTQ4NTM_78443926-1cab-47d6-8087-b30b25b3b002">9,909</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjMtMS0xLTEtOTQ4NTM_0b9b9b0c-08b0-4563-8761-d3c2182d03ff">17,277</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjMtMy0xLTEtOTQ4NTM_3cd494d1-5891-4a96-9a08-e77e983559a3">27,828</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjMtNS0xLTEtOTQ4NTM_a02480b6-ef02-45c7-bd74-901106321a36">1,688</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjQtMS0xLTEtOTQ4NTM_b5b1ab64-1641-4d46-ad2c-5f39a1d64100">2,056</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjQtMy0xLTEtOTQ4NTM_06df209f-4a5d-4b42-8d1d-4d411753f375">16,861</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjQtNS0xLTEtOTQ4NTM_48c3a65a-90cc-4a48-855f-f6191e37030c">24,542</ix:nonFraction>&#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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjUtMS0xLTEtOTQ4NTM_d54a4f29-7b16-4cf3-91e2-b2261c26f123">444</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjUtMy0xLTEtOTQ4NTM_c1d6b8b1-ade1-4734-9315-bea05d403e4d">6,401</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjUtNS0xLTEtOTQ4NTM_98e22507-9bd1-415c-bbbe-3f160595fa98">22,973</ix:nonFraction>)</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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjYtMS0xLTEtOTQ4NTM_d0c4f4e5-f14e-4c1c-b18f-0b44b94074f7">4,886</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjYtMy0xLTEtOTQ4NTM_ca0bfd53-2acb-4855-b240-518f9bc9df22">14,417</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjYtNS0xLTEtOTQ4NTM_8156505b-8f5b-4792-a8dc-ec55d76a1f59">6,571</ix:nonFraction>&#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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjctMS0xLTEtOTQ4NTM_a9ecc053-811c-40d5-aec3-8540db7688b6">12,081</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjctMy0xLTEtOTQ4NTM_ab368171-b61a-40a2-899c-679844cf2b72">3,411</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjctNS0xLTEtOTQ4NTM_6f1e75f0-5ab8-4b01-8929-9eacd102515c">4,548</ix:nonFraction>&#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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjgtMS0xLTEtOTQ4NTM_97a27d4b-1329-405c-bb48-bd967d031e57">243,406</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjgtMy0xLTEtOTQ4NTM_c8981a00-39c5-4bb1-be17-747ddf1c7f19">314,065</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjgtNS0xLTEtOTQ4NTM_3cf055a2-f853-4c35-a4b2-9e6317933e7e">242,400</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></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><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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzAtMS0xLTEtOTQ4NTM_28da750a-5a63-4544-b9e4-dedeb5436af6">233,720</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzAtMy0xLTEtOTQ4NTM_38d0c16d-1e97-4a20-848c-e6ac31c8343c">668,053</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzAtNS0xLTEtOTQ4NTM_0f13edd3-bcca-4d30-8f1d-434777b04bfd">922,867</ix:nonFraction>)</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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzEtMS0xLTEtOTQ4NTM_3c2d9374-9023-43e4-8033-642dd7001e68">253,983</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzEtMy0xLTEtOTQ4NTM_b7c039db-e653-4965-8e87-9b00ca804a62">430,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzEtNS0xLTEtOTQ4NTM_d68a3e74-8660-4eee-8d6a-90a4df455fa9">1,104,605</ix:nonFraction>&#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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzItMS0xLTEtOTQ4NTM_e2480a30-7888-4673-905d-877caa08a68f">19,667</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzItMy0xLTEtOTQ4NTM_d42c6a7e-3bb1-4c44-bcc4-b15fb11df04a">15,455</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzItNS0xLTEtOTQ4NTM_69665f82-cdd8-4f0d-bfaa-6a431eede4ec">13,303</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Net payments related to business acquisitions</span></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzMtMS0xLTEtOTQ4NTM_d94351af-79b5-4e90-9ee0-bc22869a2b54">5,050</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzMtMy0xLTEtOTQ4NTM_d6cf86bb-1136-47e1-b91d-412bb8eda72d">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzMtNS0xLTEtOTQ4NTM_6af7c076-0c02-4803-833b-bdbcf526a382">1,004</ix:nonFraction>&#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="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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzYtMS0xLTEtOTQ4NTM_01471475-5a20-4497-a7ee-b957e9a1d9c7">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"></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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzYtMy0xLTEtOTQ4NTM_94bc5571-7eea-4ba6-8a4b-b8778a237b00">252,539</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzYtNS0xLTEtOTQ4NTM_1b88060f-d85e-4ac2-840b-af8b9778a80d">169,439</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></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><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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzgtMS0xLTEtOTQ4NTM_48a8ab7b-0432-491d-add0-698488afefe4">9,861</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzgtMy0xLTEtOTQ4NTM_6df3afcc-7703-497d-94e1-a74e912c5cec">63,292</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzgtNS0xLTEtOTQ4NTM_c53f1504-1c1f-431a-b556-579ca4ddbde6">125,715</ix:nonFraction>&#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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzktMS0xLTEtOTQ4NTM_6d66ff0e-c177-4c09-972d-b04dd6f22a0f">204,314</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzktMy0xLTEtOTQ4NTM_4b5cb116-0d06-467b-8409-58dbb0ab2040">161,652</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzktNS0xLTEtOTQ4NTM_c4715c54-d907-46c0-9abf-122eafeb2662">51,036</ix:nonFraction>)</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: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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDAtMS0xLTEtOTQ4NTM_c717d48a-561f-4d55-b0cf-bedbf1af0ecc">45,921</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDAtMy0xLTEtOTQ4NTM_60ec205d-8e24-4d2d-93c6-33df23d46135">43,263</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDAtNS0xLTEtOTQ4NTM_df26a6e8-a914-4756-90b1-960d66871f72">390,508</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Payment of contingent consideration</span></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDEtMS0xLTEtOTQ4NTM_2f44d564-8168-4118-bbed-13fe2636b0b1">&#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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDEtMy0xLTEtOTQ4NTM_e4931442-beb2-4a44-a0fa-89a32c7087be">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDEtNS0xLTEtOTQ4NTM_0dc38e1d-1943-4aa3-b653-251df7f980bf">1,039</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Net cash used in financing 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDItMS0xLTEtOTQ4NTM_6e414ab5-150c-414c-b276-9cf4aa8d7675">240,374</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><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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDItMy0xLTEtOTQ4NTM_a94bc0cd-069e-4e0d-b326-f11095969d3a">141,623</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><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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDItNS0xLTEtOTQ4NTM_61d03a39-cc34-4ac3-8ec6-6cc62b9952a6">316,868</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></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%">Effect of foreign exchange rate changes on cash and cash equivalents</span></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDMtMS0xLTEtOTQ4NTM_a04503a4-5f9f-408c-9c6f-f5a847eea333">3,365</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDMtMy0xLTEtOTQ4NTM_fb082ab6-150c-42c0-90d8-4fde186f496a">2,815</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDMtNS0xLTEtOTQ4NTM_a5861d88-0052-470e-ad40-fc3b8281bad6">2,671</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Net change in cash and cash equivalents</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDQtMS0xLTEtOTQ4NTM_fe6a7ea9-f309-4878-a791-5091fec4a727">4,787</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><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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDQtMy0xLTEtOTQ4NTM_39de9eaa-9176-4f7f-b848-7a1274fc7b8d">82,912</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><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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDQtNS0xLTEtOTQ4NTM_07363258-8005-451a-95db-5c4357a0eb72">97,642</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></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 beginning of year</span></td><td colspan="2" style="background-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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDUtMS0xLTEtOTQ4NTM_708131fe-c02f-4c8a-8830-124a8958a440">186,161</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDUtMy0xLTEtOTQ4NTM_446e5b14-9c89-4f17-aaf0-53a63a144e41">269,073</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i009bdd105744470f92f9842dbdccb264_I20191231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDUtNS0xLTEtOTQ4NTM_df8463a7-bce5-450a-bd30-12c44610a1f6">171,431</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Cash and cash equivalents at end of year</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:9pt;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:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDYtMS0xLTEtOTQ4NTM_0bee8599-befc-47f3-b423-1b99532aa3d3">181,374</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-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:9pt;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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDYtMy0xLTEtOTQ4NTM_888b9eda-d3a5-4557-81fe-6522573ea3f4">186,161</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><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:9pt;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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDYtNS0xLTEtOTQ4NTM_282b07f7-4983-4b8e-a6b2-f2c7d07dc1f9">269,073</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></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="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">38</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_88"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7">Table</a><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_7"> 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:'Times New Roman',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><td style="width:48.186%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.348%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:4.278%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.348%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:5.925%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.348%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.254%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.348%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:6.035%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.348%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.767%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.348%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.567%"></td><td style="width:0.1%"></td></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><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><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><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><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><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><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><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"></td></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, 2019</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:9pt;font-weight:400;line-height:100%"><ix:footnote id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93" footnoteRole="http://www.xbrl.org/2003/role/footnote"><ix:nonFraction unitRef="shares" contextRef="i8b9f9b0cca6842aea084f5a2e15e878e_I20191231" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_93e8332f-e346-4d42-9c65-ed3b944a2ffc">172,440</ix:nonFraction>&#160;</ix:footnote></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: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="i8b9f9b0cca6842aea084f5a2e15e878e_I20191231" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi00LTEtMS05NDg1Mw_8c238d20-a6a9-44ed-b16e-bfb096999069">345</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><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: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="i4c91f0f7ed80453ab08299b62282377f_I20191231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi02LTEtMS05NDg1Mw_c97cb2e7-e470-40bc-9969-ab5abb0f33c3">639,372</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><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: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="i8902887729504b498026f2d195bc6171_I20191231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi04LTEtMS05NDg1Mw_6169e801-2b25-4c23-ad16-f418764ca498">753,268</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><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: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="ideca493651a94cfd9ac93831dacc0feb_I20191231" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0xMC0xLTEtOTQ4NTM_c17d1137-70fb-4f23-a7e1-63ca194bdde3">37,275</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><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: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="i009bdd105744470f92f9842dbdccb264_I20191231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0xMi0xLTEtOTQ4NTM_0ea1292a-8e38-43e0-afd7-2f1eac0eb887">1,355,710</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></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><td colspan="2" style="background-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="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy0yLTEtMS05NDg1Mw_c28a5892-e103-4305-ac2a-3c655f4dc74a">4,565</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy00LTEtMS05NDg1Mw_c83e8545-157a-43a5-8b9d-a2a77a9361e9">9</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6a9e2d8b39044a5da470cd71a20e96d9_D20200101-20201231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy02LTEtMS05NDg1Mw_cca903b8-a6c3-44ab-b15b-9b3449e7fdb8">125,706</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy0xMi0xLTEtOTQ4NTM_81c714e3-63b1-4274-9e65-98bb8df2185c">125,715</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Repurchase of common stock</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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC0yLTEtMS05NDg1Mw_d3c6c976-675c-4760-8771-c8f30231d1f5">1,215</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC00LTEtMS05NDg1Mw_0900c253-e5ce-4de4-a15a-9a37583322c1">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC04LTEtMS05NDg1Mw_e1781030-2553-4860-9e16-6c6b065da4be">51,034</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC0xMi0xLTEtOTQ4NTM_658dcfab-c1ec-444f-80ea-df9e69f7fc3d">51,036</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6a9e2d8b39044a5da470cd71a20e96d9_D20200101-20201231" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNS02LTEtMS05NDg1Mw_efe4d7c1-0c49-462a-b2de-2521352fa54b">42,661</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNS0xMi0xLTEtOTQ4NTM_1ff7c79d-9c4a-448e-8eed-bf55e57af133">42,661</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Payment of dividends ($2.225 per common share)</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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNi04LTEtMS05NDg1Mw_5b48175e-97f5-4e8d-98fe-2766cdd4122b">390,508</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNi0xMi0xLTEtOTQ4NTM_28ca452d-7f6a-4940-bd34-c2c488295012">390,508</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Net income</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNy04LTEtMS05NDg1Mw_e4578776-6783-46d5-ba1b-d70fa9203883">176,186</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNy0xMi0xLTEtOTQ4NTM_c931eb69-9066-43f7-903c-3e7ebf6b9da9">176,186</ix:nonFraction>&#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></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></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 $981</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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTAtMTAtMS0xLTk0ODUz_3b51800e-b891-4df1-92c8-66477e88363c">6,478</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTAtMTItMS0xLTk0ODUz_a90597d5-5afc-4575-9b26-6c08781b728f">6,478</ix:nonFraction>&#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: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><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTEtMTAtMS0xLTk0ODUz_cbbd87b9-82df-49b7-b81b-678d510a8f8a">4,119</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTEtMTItMS0xLTk0ODUz_a3f6b42a-49af-4f62-9593-9528502fcc4e">4,119</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment, net of tax of $0</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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTItMTAtMS0xLTk0ODUz_a3267118-2249-4592-a509-0f358617280a">1,115</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTItMTItMS0xLTk0ODUz_d2c43f75-67dc-4210-9e5b-06ea6b19c8c3">1,115</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2020</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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="i37aa967d9b614574b60bf8744e6aa32d_I20201231" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtMi0xLTEtOTQ4NTM_213b4127-0bd8-4345-9f51-9fa0eddc5f8c">175,790</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><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: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="i37aa967d9b614574b60bf8744e6aa32d_I20201231" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtNC0xLTEtOTQ4NTM_3f6dce0a-912d-4a43-8d8d-b4d8dfbea3da">352</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><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: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="i2da618064e304974bd1bb8c916268bb4_I20201231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtNi0xLTEtOTQ4NTM_3f68ab99-06eb-4b98-95db-86e24506d64c">807,739</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><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: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="ia9112897e9444fd39d5b0856d18ea54f_I20201231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtOC0xLTEtOTQ4NTM_44141063-b123-492c-85c8-a581fd8080fb">487,912</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><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: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="iad6f5aa41caf46e288e81930ea0abb6b_I20201231" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtMTAtMS0xLTk0ODUz_259e868d-5c6a-4383-893e-8a62af1847a4">33,801</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><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: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="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtMTItMS0xLTk0ODUz_a9e08639-b471-486e-b354-52e6e16a8768">1,262,202</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></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><td colspan="2" style="background-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="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtMi0xLTEtOTQ4NTM_2dcef486-39fa-4184-ae29-f0e989e3ad1e">1,703</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtNC0xLTEtOTQ4NTM_9cf9957e-2579-4fc2-a6df-7be336208291">3</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ibae6b9b3c6ef413db976bc670eab9f6f_D20210101-20211231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtNi0xLTEtOTQ4NTM_0dc17539-4719-4215-a8e4-cc5a11371d30">63,289</ix:nonFraction>&#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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtMTItMS0xLTk0ODUz_40a56e13-ba09-4ec8-859a-8c2f038c2ee8">63,292</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Repurchase of common stock</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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtMi0xLTEtOTQ4NTM_711a0b7c-682a-4704-89a2-80c9eb159a7f">2,012</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtNC0xLTEtOTQ4NTM_7f1f3799-1d06-407b-ae56-c1ab3421c2e2">4</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtOC0xLTEtOTQ4NTM_f2432040-3f00-46ec-ac5b-68c7b726b9f1">161,648</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtMTItMS0xLTk0ODUz_d10ea9c3-f2aa-4d37-9a5c-94b88bce98a1">161,652</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="ibae6b9b3c6ef413db976bc670eab9f6f_D20210101-20211231" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTYtNi0xLTEtOTQ4NTM_36e9130b-4fe8-43a5-8b32-23e4223ce3ee">43,774</ix:nonFraction>&#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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTYtMTItMS0xLTk0ODUz_984a48eb-5e5d-4f42-b7ac-44128989c68e">43,774</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.245 per common share)</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTctOC0xLTEtOTQ4NTM_91f661b5-bb7a-4b2d-8a50-7003a6d3ed13">43,263</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTctMTItMS0xLTk0ODUz_4ef49e15-7570-403b-b02b-b7e6cd30237e">43,263</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Net income</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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTgtOC0xLTEtOTQ4NTM_152a482c-0023-46dc-9144-88a1dbfb82da">279,881</ix:nonFraction>&#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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTgtMTItMS0xLTk0ODUz_25be0881-70ce-42ca-9612-66ccf4355e68">279,881</ix:nonFraction>&#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></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></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 ($2,206)</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjEtMTAtMS0xLTk0ODUz_711fa63c-a574-4338-8b53-f59b0f1e711a">7,152</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjEtMTItMS0xLTk0ODUz_7e8a6691-ef27-4fce-83b3-dcd1c7457802">7,152</ix:nonFraction>)</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: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><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjItMTAtMS0xLTk0ODUz_08ed6904-eacc-4bba-97b4-1d7c94aab617">236</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjItMTItMS0xLTk0ODUz_fce74129-1aee-4417-974a-a8ffe10b8ce3">236</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment, net of tax of $0</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjMtMTAtMS0xLTk0ODUz_53ae7ec7-f3f5-4aec-b2d8-56830e79ab55">6,753</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjMtMTItMS0xLTk0ODUz_c8fd35be-9b47-4f92-93ae-1cab4177f417">6,753</ix:nonFraction>)</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: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><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="i286bf008d86648e2af5b7cab93deaa88_I20211231" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtMi0xLTEtOTQ4NTM_772e9bd8-ed74-4b6b-a812-60733f137907">175,481</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><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: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="i286bf008d86648e2af5b7cab93deaa88_I20211231" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtNC0xLTEtOTQ4NTM_92b30f76-aeff-404d-90a1-c79ecd59dd8e">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><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: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="i07f860f3aace482bae8724cb64ea7ba0_I20211231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtNi0xLTEtOTQ4NTM_126b5364-131b-4bcc-b404-711c6f3085c7">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><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: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="i425536f7ac9649f4b809e9472268e109_I20211231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtOC0xLTEtOTQ4NTM_10a69ecd-629c-4f7b-a6ee-cb4709fdf729">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><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: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="ifbb03b23bd884f0b97dde49ac3a7aba3_I20211231" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtMTAtMS0xLTk0ODUz_4be77e32-0419-4700-aecd-3c0b7313946c">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><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: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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtMTItMS0xLTk0ODUz_549349d8-c4de-4d5f-91ce-ea3a7813142a">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"></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: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><td colspan="2" style="background-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="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtMi0xLTEtOTQ4NTM_029aabbf-03f7-4fc5-9123-3183e7af8675">514</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtNC0xLTEtOTQ4NTM_15de596d-8a6a-4cf2-b310-a05bb8da8313">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ie1e2221b2ffb438484820462f94b5dab_D20220101-20221231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtNi0xLTEtOTQ4NTM_55df1067-5285-4082-ba3b-1b38523f1241">9,860</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtMTItMS0xLTk0ODUz_9438e04c-506d-4c4b-811f-daca911dc41a">9,861</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Repurchase of common stock</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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtMi0xLTEtOTQ4NTM_3d695471-fff6-4222-ad51-3a4b4752d0be">3,364</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtNC0xLTEtOTQ4NTM_4c149b59-5d38-44a9-9889-b142c7322908">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i295a746960af462daa557f4bd0a773d4_D20220101-20221231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtOC0xLTEtOTQ4NTM_165a0122-8088-42f8-a06f-f8b2d8400f48">204,307</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtMTItMS0xLTk0ODUz_3a16deac-05ca-4588-b4ec-302af733fa28">204,314</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ie1e2221b2ffb438484820462f94b5dab_D20220101-20221231" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjctNi0xLTEtOTQ4NTM_74280473-af16-468d-9b02-5de03bfc1e4b">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjctMTItMS0xLTk0ODUz_7cdcbcc2-bf73-4358-bc76-4bea5ca00fb0">54,505</ix:nonFraction>&#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: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><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="i295a746960af462daa557f4bd0a773d4_D20220101-20221231" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjgtOC0xLTEtOTQ4NTM_434cf64a-9011-409b-bc3d-2b1121a9a723">45,921</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjgtMTItMS0xLTk0ODUz_9c3511b3-5f36-4168-a2cc-eaf8264f2251">45,921</ix:nonFraction>)</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:9pt;font-weight:400;line-height:100%">Net income</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: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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="i295a746960af462daa557f4bd0a773d4_D20220101-20221231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjktOC0xLTEtOTQ4NTM_4b950949-71af-48bf-a4bd-8cabbb519148">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjktMTItMS0xLTk0ODUz_0fe1004b-429d-4a5e-ba74-efab91ed591b">215,525</ix:nonFraction>&#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></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></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><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzItMTAtMS0xLTk0ODUz_2f146e76-b7e1-45ee-8346-1cdabffe0c01"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzItMTAtMS0xLTk0ODUz_f411238b-d556-48ef-87d8-0c74344861cd">17,152</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzItMTItMS0xLTk0ODUz_2a37b04c-f8d7-43c0-b0da-a7425e34d60d">17,152</ix:nonFraction>)</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></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><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzQtMTAtMS0xLTk0ODUz_5134a53b-b4bd-45bd-9005-2f3b45101be3"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzQtMTAtMS0xLTk0ODUz_7df3b38b-9eed-451c-91c9-dad594f394f1">182</ix:nonFraction></ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzQtMTItMS0xLTk0ODUz_d4d476e0-bb6e-450b-9785-7b1a4ee39c0e">182</ix:nonFraction>&#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:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment, net of tax of $0</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: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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-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="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzUtMTAtMS0xLTk0ODUz_1daa9da4-dff6-4092-bb9f-bba1fdb4e221"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzUtMTAtMS0xLTk0ODUz_5e2fa5bb-1801-41b6-8319-00845adbd766">4,385</ix:nonFraction></ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzUtMTItMS0xLTk0ODUz_94387f65-b263-46f7-b67a-8acff06cfb69">4,385</ix:nonFraction>)</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:9pt;font-weight:700;line-height:100%">Balance as of December 31, 2022</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:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="i2fb26adbfc8148299f6f7d6ee49b7fe2_I20221231" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtMi0xLTEtOTQ4NTM_43ed0889-f665-4185-b30f-0992a4154932">172,631</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><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: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="i2fb26adbfc8148299f6f7d6ee49b7fe2_I20221231" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtNC0xLTEtOTQ4NTM_b34fd13d-34c3-4fa5-95f9-c918aa510135">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-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: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="i1178be5f70604688adcb636c8cbedf0c_I20221231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtNi0xLTEtOTQ4NTM_60c6da3b-a6c4-4ab4-858f-60c1a49e6044">979,167</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><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: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="i822bc252196244cca8220d4e49c25314_I20221231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtOC0xLTEtOTQ4NTM_c269171f-8fc1-4570-acfe-beb4a303c099">528,179</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><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: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="i2897666478444bcd81e42d318b14859a_I20221231" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtMTAtMS0xLTk0ODUz_ea2184cb-ace4-4dd4-a716-00df05679959">69,297</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><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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtMTItMS0xLTk0ODUz_eb6038a0-4c73-4635-83e0-d36db67078ec">1,438,394</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></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></tr><tr><td colspan="3" style="display:none"></td></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">39</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_94"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMTA_cdb53dd6-c3af-4eea-8cca-6d7da80a4255" continuedAt="i4ff758aef080404589596ae6c93303ff" escape="true">Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="i4ff758aef080404589596ae6c93303ff" continuedAt="i96f0b02906d645638d6fb1f749b973df"><div style="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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:NatureOfOperationsPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNTg_b9ba57f2-396c-4745-a3da-a1b098428539" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:UseOfEstimates" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNzQ_8c143141-1a02-4849-89e3-5835bc68721a" 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, investments, stock-based compensation, and income taxes.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ConsolidationPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNTg_2b2ef511-9874-4e37-b937-36f535d9a5ff" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyODE_9c669091-cd80-4eb7-8258-83a561f628ba" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNjg_7e619e98-4990-41d7-8a06-0133610c00a5" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxOTg_4717c1c8-074e-4d25-b02c-e8e6406f2cb8" continuedAt="idf09f46def3a4ec19184dac243ccc355" escape="true"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:InvestmentPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxOTg_b38d0bc8-e5ff-436c-b7d0-5624ed95523f" continuedAt="ie3e8b6a6f5724217813539a3c1732bf0" 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. It is the Company&#8217;s policy to invest in investment-grade debt securities with effective maturities that do not exceed <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzUwMw_e16439b6-5cc1-4aa3-8cc2-ce0ac73934cd">ten years</ix:nonNumeric>.</span></div><div style="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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i96f0b02906d645638d6fb1f749b973df" continuedAt="i397dfd36444043969f1d9b301bceeba3"><div style="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="idf09f46def3a4ec19184dac243ccc355"><ix:continuation id="ie3e8b6a6f5724217813539a3c1732bf0">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.</ix:continuation></ix:continuation></span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:TradeAndOtherAccountsReceivablePolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMjA_2f5fbf0c-22a0-425e-84b9-04b4afb25b39" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:InventoryPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNDU_e719863d-b5f9-4a5e-ab0f-c4d403d0c2c2" 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:9pt;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></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNTI_6e8a38ea-1d85-4b25-bdd4-82ef867faf81" 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; useful lives are <ix:nonNumeric contextRef="ifa7f1aaa09574c4d9c4e019d191a823f_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNzg4Nw_c19cb467-cd3d-4e75-98d9-5abeb6289681">39</ix:nonNumeric> years, building improvements&#8217; useful lives are <ix:nonNumeric contextRef="iee589a12fbf244359633a5838d775a60_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNzkzMQ_d68d338a-b21c-4cc8-8848-ff889bd1a2fc">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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131">two</span> to <ix:nonNumeric contextRef="ifb77d360cfbf4d1cbc02bb15f3155617_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA2NQ_3b02ef65-c384-4514-91eb-d21d1c9f256e">ten years</ix:nonNumeric>. 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></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:InternalUseSoftwarePolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNzg_189a005d-7539-4fa7-89e8-55f8015df3c7" continuedAt="i2d74c96be1ce49c18362f540a2cd8a1c" 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></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i397dfd36444043969f1d9b301bceeba3" continuedAt="id01d615d96be439f98d4e37a743b5514"><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%"><ix:continuation id="i2d74c96be1ce49c18362f540a2cd8a1c">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.</ix:continuation></span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:LesseeLeasesPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMzI_e098cd12-59af-4389-8de7-1b0269ca1f4f" 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 12 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, through year ended December 31, 2022, was estimated using the three-month London Interbank Offered Rate (LIBOR) 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMzI_04d4741a-13a0-49a1-81c6-d39c15431d6a" continuedAt="i2bc1913c1d4d4d4e8c0cff5b8b2d6ce4" 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 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 would proceed 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 </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="id01d615d96be439f98d4e37a743b5514" continuedAt="i771dc260386b4c4b8f2ffbae63ccee74"><div style="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="i2bc1913c1d4d4d4e8c0cff5b8b2d6ce4">similar businesses, to support the conclusions based on the income approach.</ix:continuation> </span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:IntangibleAssetsFiniteLivedPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMzM_3b1cdf27-a08d-4563-b8f4-8c4808eab589" 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 distribution networks range from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06">eleven</span> to <ix:nonNumeric contextRef="i26a15cd120ad42108ce81ed3c8d47990_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NDE_62c28823-4463-4f46-969c-413ff52dbdf8">twelve years</ix:nonNumeric>, completed technologies from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5">five</span> to <ix:nonNumeric contextRef="i015d343516f34dd589537e0a5a7019d2_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0Nzk_07c9dcd7-697d-4e20-bd29-8652a34ab053">eight years</ix:nonNumeric>, customer relationships from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6">five</span> to <ix:nonNumeric contextRef="i01ed603468da4f2c954af228989e2960_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTc_ad1c8d42-e265-4877-b330-deac9dd629d5">eight years</ix:nonNumeric>, non-compete agreements from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7">three</span> to <ix:nonNumeric contextRef="i565941fba8af4a21ac95304dd4e544b6_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NTU_b78cb497-aa6a-4202-beb3-1835b57e7876">seven years</ix:nonNumeric>, and trademarks <ix:nonNumeric contextRef="id0ea9f117fff4c63a23c02536f451fdd_D20220101-20221231" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NzQ_586216d2-6242-4ee7-a9b1-a16f4fb0dff6">two 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded as the amount by which the carrying value of the asset exceeds its fair value.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:StandardProductWarrantyPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNjI_f45facd2-3846-418b-9f7f-be740c8af1df" 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2">one</span> to <ix:nonNumeric contextRef="i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231" name="cgnx:ProductWarrantyPeriod" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODc_d41c7e3a-043c-4954-9ba9-ef64699bcbe6">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:CommitmentsAndContingenciesPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxODI_2db44831-2045-4773-b3a0-84750d18acbd" 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><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"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:DerivativesPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyODg_05dec32d-422c-4796-a453-052346a501a0" continuedAt="icf0e93ec724a49e8b29e1523d4cccb6c" escape="true">Derivative Instruments</ix:nonNumeric></span></div><div style="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="icf0e93ec724a49e8b29e1523d4cccb6c">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. The Company recognizes all derivative instruments as either current assets or current liabilities at fair value on the Consolidated Balance Sheets. 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:RevenueRecognitionPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyODk_dc4c87dc-a38b-4963-a456-fbcfc4fa2f0e" continuedAt="ibb32034c624546339680025120b228db" 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 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></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i771dc260386b4c4b8f2ffbae63ccee74" continuedAt="i6eb534bf083e47f2ad474df8664c56d7"><ix:continuation id="ibb32034c624546339680025120b228db" continuedAt="ibed2b4c0aea14d4d8d13e96a8ae60f26"><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. These solutions are provided to customers in a variety of industries, including the consumer electronics and logistics industries. </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 typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. 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 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 objectively 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 </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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i6eb534bf083e47f2ad474df8664c56d7" continuedAt="ia6fe04169bc9415cb3235285556e852f"><ix:continuation id="ibed2b4c0aea14d4d8d13e96a8ae60f26"><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%">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 objectively 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 revenue recognition criteria, 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="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjU4MzU_ffb96403-642b-4168-a2dd-99783b9c75bd">30</ix:nonNumeric> to <ix:nonNumeric contextRef="i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjU4NDE_b3a7349f-c055-42e2-99fa-9e9d793d4e0b">90</ix:nonNumeric> days from billing. The Company's contracts 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 a contract 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><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"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMzE_c0818c96-2f0b-49ed-9072-a194b019960a" continuedAt="i718ca9e4e0884e7fa0c1dbd1b94598bd" escape="true">Research and Development</ix:nonNumeric></span></div><div style="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="i718ca9e4e0884e7fa0c1dbd1b94598bd">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNjk_464e5bdf-6c8d-447f-87de-947d4e1ddbec" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjc5Mjc_69acd33c-2069-4b30-83a2-77981a2096ac">1,257,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjc5Mzc_e778a176-4435-44c1-90e6-2be1306681a7">1,965,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjc5NTE_be833d53-8687-44d2-89b2-7c9cb3dd0e7f">1,443,000</ix:nonFraction> in 2020.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxODY_7b2c4d48-1aed-4233-80e3-7ce6ffa89bca" continuedAt="i57c0e013aecd4ebeafec01ce480e69f7" 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 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></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ia6fe04169bc9415cb3235285556e852f" continuedAt="ie6c747b3237b46f18be93d062b4bfde4"><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%"><ix:continuation id="i57c0e013aecd4ebeafec01ce480e69f7">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.</ix:continuation></span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:IncomeTaxPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMTQ_dcb21ac2-13aa-4111-8beb-fca46682717e" 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, or 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%">Only 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 not classified as current. 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.</span></div><div style="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 Tax Cuts and Jobs Act of 2017 imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax. In 2019, the Company elected to account for the impact of the GILTI minimum tax in deferred taxes, a change from the Company&#8217;s initial election made in 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. The change is considered preferable, as it appropriately matches the Company&#8217;s current and deferred income tax implications.</span></div><div style="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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:EarningsPerSharePolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMjQ_ed42986d-9389-49b5-b02d-82bb09cd8499" 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ComprehensiveIncomePolicyPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNDc_18b73ddf-d618-4dad-b96f-8429bb5b187a" continuedAt="ib4220cd275d74f05a5dd755171cb2a19" 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQyNTk_6d292f69-88fe-4bcc-ab02-eee6bd1110f1">48,050,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQyNjY_b96e78a6-3c98-43b3-aa82-c071af7471a6">43,665,000</ix:nonFraction>, as of December 31, 2022 and December 31, 2021, respectively; net unrealized losses on available-for-sale investments of $<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQzODY_a396870a-5049-4415-b346-9cca7e0bb139">19,976,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNTQ5NzU1ODU2Nzgy_33c4e674-5e97-46ac-ab69-fbbf90ba3731">3,006,000</ix:nonFraction> as of December 31, 2022 and December 31, 2021, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ1ODA_bb5c5f6e-9411-400b-847e-9b8f9a7d3e06">1,271,000</ix:nonFraction> </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">46</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ie6c747b3237b46f18be93d062b4bfde4" continuedAt="ib23c206ff3cd45398d692781d5950bae"><ix:continuation id="ib4220cd275d74f05a5dd755171cb2a19"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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%">Amounts reclassified from accumulated other comprehensive loss, net of tax, to investment income on the Consolidated Statements of Operations were net realized gains (losses) of $(<ix:nonFraction unitRef="usd" contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231" decimals="0" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ3NzA_9e52c80d-cc3f-4591-9ae1-b591b88d9a2e">182,000</ix:nonFraction>), $<ix:nonFraction unitRef="usd" contextRef="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231" decimals="0" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ3NzQ_8f3943ca-540f-40ac-9fea-7ce3ce734581">236,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231" decimals="0" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ3ODI_435854fe-b958-45a4-aec2-97aa94570174">4,119,000</ix:nonFraction> for 2022, 2021, and 2020, respectively.</span></div></ix:continuation><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMzA_d02eca70-08d0-42c5-8741-c60739a30406" 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 safety and liquidity. The Company has historically not experienced any significant realized losses on its debt 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 has two large customers that each represented 11% of total revenue in 2022. These two customers combined represented 17% of total accounts receivable as of December 31, 2022. 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. Our contract manufacturer's 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. On June 7, 2022, this contract manufacturer suffered a fire at its Indonesian plant destroying a large portion of the Company's component inventories. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,000. Refer to Note 22 for further information on this event and the charges recorded in "Loss from Fire" 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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:BusinessCombinationsPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMzc_81556344-a4ab-44c5-86a0-574efa4692f4" continuedAt="ic9da18f8d5914c1dadc9dc7620b3c605" 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 Acquisitions</span></div><div style="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 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 primarily establishes fair value using the income approach based on a discounted cash flow model. The income approach requires the use of many assumptions and estimates including future revenues and expenses, as well as discount factors. Contingent consideration liabilities are reported at their estimated fair values based on probability-adjusted present values of the consideration expected to be paid, using significant inputs and estimates. Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain milestones and discount rates consistent with the level of risk of achievement. The fair values of these contingent consideration liabilities are remeasured </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">47</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ib23c206ff3cd45398d692781d5950bae" continuedAt="ia64560df4ffa4de6828b6929f01e5a9b"><div style="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="ic9da18f8d5914c1dadc9dc7620b3c605">each reporting period with changes in fair value included in "Other income (expense)" on the Consolidated Statements of Operations. 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> </span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNjQ_8ec456a6-a54e-4639-9b32-85971092dd2b" continuedAt="i4b148baaba22423295aba6f8ffa472b9" 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">Restructuring 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%">One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#8220;communication date&#8221;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.</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="ia64560df4ffa4de6828b6929f01e5a9b"><ix:continuation id="i4b148baaba22423295aba6f8ffa472b9">Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.</ix:continuation></ix:continuation> </span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDMvZnJhZzo2NzJiYTg5M2U4YTM0NTQ0OGNhNWE1NTEyMjc5OGYyYi90ZXh0cmVnaW9uOjY3MmJhODkzZThhMzQ1NDQ4Y2E1YTU1MTIyNzk4ZjJiXzM4MzI_2c5ee63d-5faa-4c00-8e80-caa49e992ff2" continuedAt="i42326b81bb964347bd397477e856b390" escape="true"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDMvZnJhZzo2NzJiYTg5M2U4YTM0NTQ0OGNhNWE1NTEyMjc5OGYyYi90ZXh0cmVnaW9uOjY3MmJhODkzZThhMzQ1NDQ4Y2E1YTU1MTIyNzk4ZjJiXzM4Mzg_6faad50a-b8f9-4ff8-8179-26a82725244b" continuedAt="ie1ba161563b8466c97227bc9f760f7a7" escape="true">New Pronouncements</ix:nonNumeric></ix:nonNumeric></span></div><ix:continuation id="i42326b81bb964347bd397477e856b390" continuedAt="i353354de81934e80a6b533a92aeb6713"><ix:continuation id="ie1ba161563b8466c97227bc9f760f7a7" continuedAt="ib53a5be530264931999bb16643f74c66"><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">Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"</span></div><div style="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 these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.</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">Accounting Standards Update (ASU) 2021-08, "Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers"</span></div></ix:continuation></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="i353354de81934e80a6b533a92aeb6713"><ix:continuation id="ib53a5be530264931999bb16643f74c66">The amendments in this ASU primarily address the accounting for contract assets and contract liabilities related to revenue contracts with customers in a business combination. The ASU clarifies that an acquirer should account for the related revenue contracts in accordance with Accounting Standards Codification 606 as if the acquirer had originated the contracts. The amendments in this ASU are effective for fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, although early adoption is permitted. The amendments in the ASU should be applied prospectively to business combinations occurring on or after the effective date of the amendments. Management adopted this ASU on December 1, 2022 and the adoption did not have a material impact on the Company's financial statements and disclosures.</ix:continuation></ix:continuation> </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">48</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_109"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 3:&#160;<ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:FairValueDisclosuresTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzM4NTY_19af2f68-7107-44c5-a04e-252cfa8d6369" continuedAt="i3d2664e2b1524e19a5c3d2a3d2abdc4c" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:continuation id="i3d2664e2b1524e19a5c3d2a3d2abdc4c" continuedAt="i80fa5a9a92284b60866c660db1e3cc7d"><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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzM4NjQ_54e45728-b747-4cb1-97f7-a78515f3404f" 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, 2022 (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%"><ix:nonFraction unitRef="usd" contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzMtMS0xLTEtOTQ4NTM_04b844d8-ebd9-4c26-aaa5-42ff3ac3837e">415</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzMtMy0xLTEtOTQ4NTM_d55d4bc4-0bbb-4151-8468-9b7a660dff18">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzMtNS0xLTEtOTQ4NTM_7a1960db-873d-49ce-a503-15ddfe87cd4b">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzQtMS0xLTEtOTQ4NTM_186b2a67-5b07-403f-9ce8-46e03c6d7317">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzQtMy0xLTEtOTQ4NTM_25ab7a01-dd41-49c5-af06-855e80926dc3">538,495</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzQtNS0xLTEtOTQ4NTM_82bbf759-45bf-4d51-9cc7-a44bb94b5fda">&#8212;</ix:nonFraction>&#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%">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="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzUtMS0xLTEtOTQ4NTM_80a6db77-0564-4e28-b6b1-a256942a235a">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzUtMy0xLTEtOTQ4NTM_04b680cd-4f7a-40b8-b5f9-7f2c1e32494e">60,429</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzUtNS0xLTEtOTQ4NTM_03634a44-b61e-48c2-afed-f3eeac0df7c0">&#8212;</ix:nonFraction>&#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%">Treasury bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzYtMS0xLTEtOTQ4NTM_8ba383f1-cbf4-45db-8835-6012c6321021">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzYtMy0xLTEtOTQ4NTM_956e0c63-8de3-4db2-8a0f-90612a3ada86">55,546</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzYtNS0xLTEtOTQ4NTM_d62a4564-63c7-4d96-a7a4-e60ebf46791d">&#8212;</ix:nonFraction>&#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%">Agency 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="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:AgencyBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzgtMS0xLTEtOTQ4NTM_4cf52d57-a1bb-4cc0-a65d-24b471bc81b5">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:AgencyBondsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzgtMy0xLTEtOTQ4NTM_ce5c6c60-1ca8-4862-9c7b-5b4aea6fd20c">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:AgencyBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzgtNS0xLTEtOTQ4NTM_93813f78-f85c-4cb3-ba16-7c55b48629ce">&#8212;</ix:nonFraction>&#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%">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="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMS0xLTEtMTAwNjUz_23399ced-8569-4009-8583-96978ebfb95f">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMy0xLTEtMTAwNjUz_3f0e363d-3d3c-40f2-9a44-e5ecbfa05cd1">1,924</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktNS0xLTEtMTAwNjUz_f1accbbd-a35c-4313-be48-0095d02371c6">&#8212;</ix:nonFraction>&#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%">Municipal 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="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="cgnx:MunicipalBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMS0xLTEtOTQ4NTM_55a32aeb-5a50-4ca6-8293-356d29c53a20">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="cgnx:MunicipalBondsFairValueDisclosure" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMy0xLTEtOTQ4NTM_8b692733-4b95-4059-9d6e-c0ff204a4242">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="cgnx:MunicipalBondsFairValueDisclosure" format="ixt:fixed-zero" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktNS0xLTEtOTQ4NTM_13571288-9ac8-4293-9829-8816c8f8a00e">&#8212;</ix:nonFraction>&#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="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="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzEzLTEtMS0xLTk0ODUz_ae129f67-c286-4201-93eb-781beed16668">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzEzLTMtMS0xLTk0ODUz_e5647164-f3c9-48bd-a9aa-b3cfb91a6557">27</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzEzLTUtMS0xLTk0ODUz_0dce9017-d58c-4fe0-b572-b5930984909b">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzE2LTEtMS0xLTk0ODUz_1588ac95-b264-4028-bdfe-fe8e56340bf7">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i869877af7504471eb26d50c3caf7a346_I20221231" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzE2LTMtMS0xLTk0ODUz_ae9491a0-afbe-4b55-9d96-a4c80a8e08db">479</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzE2LTUtMS0xLTk0ODUz_9aa45ee5-710b-4cca-9a89-676b8de9140a">&#8212;</ix:nonFraction>&#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></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><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's contingent consideration liabilities are reported at fair value based on probability-adjusted present values of the consideration expected to be paid using significant inputs that are not observable in the market, and are therefore classified as Level 3. The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. in 2017 was written down to <ix:nonFraction unitRef="usd" contextRef="if60370d1989c45a9a5f65c6069b83bf0_I20191231" decimals="INF" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzIzNzE_b9af46fb-771f-49a4-a39e-e2c59b6142f7">zero</ix:nonFraction> in 2019 resulting from a lower level of revenue in the Americas' automotive industry. The balance remained at <ix:nonFraction unitRef="usd" contextRef="i3528e37801244544af9d193380101650_I20221231" decimals="INF" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzI0ODc_d944bcb9-5c4f-40c3-b4ab-6775336d2374">zero</ix:nonFraction> through the remainder of the five-year assessment period which concluded during the second quarter 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%;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="i80fa5a9a92284b60866c660db1e3cc7d">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 adverse impact of the COVID-19 pandemic on our business in 2020 triggered a review of long-lived assets for potential impairment as of May 26, 2020, which resulted in operating lease asset impairment charges of $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OperatingLeaseImpairmentLoss" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzMzNTE_c0e98a8f-46b9-4d55-86dc-91fa8a1ffa67">3,427,000</ix:nonFraction> (refer to Notes 7 and 23) that were included in "Restructuring charges" on the Consolidated Statements of Operations, and intangible asset impairment charges of $<ix:nonFraction unitRef="usd" contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzM1MTU_322f0d0b-b1b1-439b-9aed-c0846d695270">19,571,000</ix:nonFraction> (refer to Note 9) in the second quarter of 2020. These fair value measurements were based on the present values of future cash flows using significant inputs that are not observable in the market, and were therefore classified as Level 3. The Company did not record impairment charges related to non-financial assets in 2022 or 2021.</ix:continuation> </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">49</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_115"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 4:&#160;<ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzEyNjQ0MzgzNzIzMTE1_7dd5e8eb-9997-4126-98dd-9c72ca6642cf" continuedAt="i7d400c9691a64f78bf3c68b9a696e5b0" escape="true">Cash, Cash Equivalents, and Investments</ix:nonNumeric></span></div><ix:continuation id="i7d400c9691a64f78bf3c68b9a696e5b0" continuedAt="id63ca71dc6e64a0e8a0197af887400bc"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIzOTQ_ccc18b5f-a2a8-4771-ad82-f5998505da69" 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><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%">2022</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%">2021</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzItMS0xLTEtOTQ4NTM_e022287d-6f79-4d9c-b8d9-9dad54a3c74e">180,959</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzItMy0xLTEtOTQ4NTM_f882422f-db5c-41de-8d00-5ecf168dc71b">185,624</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></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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzQtMS0xLTEtOTQ4NTM_616ccf62-5717-4694-b379-59d8700d0b38">415</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzQtMy0xLTEtOTQ4NTM_c20627cc-ea43-451b-b6e0-9dbf6aeafeeb">537</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzUtMS0xLTEtOTQ4NTM_158342c8-7433-4b29-b35e-8f0ef770ea87">181,374</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzUtMy0xLTEtOTQ4NTM_5c9cb2d5-9864-40f6-b44c-0edd4e76ea22">186,161</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></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="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzYtMS0xLTEtOTQ4NTM_dd6d5083-7cec-46ac-88d1-54a7ed7c9338">164,055</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i60011d84efde475c8588eb23faee3402_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzYtMy0xLTEtOTQ4NTM_7743eec7-3f5f-4473-b582-3c9b095c173d">73,088</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzctMS0xLTEtOTQ4NTM_40da1f10-8cc3-41e9-b16b-f0d23cfd9276">26,890</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i9634a0ff62a64c7c97fb012d5f04f764_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzctMy0xLTEtOTQ4NTM_a22e2b4f-8f3c-4382-b299-9954205e8676">37,655</ix:nonFraction>&#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%">Agency 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="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMS0xLTEtMTAwNjYx_78e10330-8c68-4238-bf1b-b900ccd9eb54">15,858</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie688266910e6494fa1c1ad7173ab67cb_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMy0xLTEtMTAwNjYx_ee5613fe-bea9-4dc3-b23c-5b124cd0da52">2,802</ix:nonFraction>&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="i74c78e40a8d843199a11606ff8e39c0f_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMS0xLTEtOTQ4NTM_de0bd3b4-ba30-433f-9b49-61d101138698">11,332</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ib992952d9d974d5ea61d843c4d3dfe6b_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMy0xLTEtOTQ4NTM_a5bb88e7-500b-46df-ae9a-7957bdd1d867">18,912</ix:nonFraction>&#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%">Municipal 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="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzktMS0xLTEtOTQ4NTM_cd75c843-cfe2-46bf-adb7-6e1ba342126b">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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i749ddfecc38f475192a0e44188c51783_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzktMy0xLTEtOTQ4NTM_c5bafbb7-2944-4e0f-b6cf-909bb739b17c">4,998</ix:nonFraction>&#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="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%">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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE1LTEtMS0xLTk0ODUz_a8bf4e9d-986e-4864-a431-817214d565bf">218,759</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE1LTMtMS0xLTk0ODUz_76e2adf0-7b60-414a-857f-d24c4d2c1479">137,455</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></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;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="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE2LTEtMS0xLTk0ODUz_bbbe166b-3819-4dca-906e-496858d4dae9">374,440</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><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%"><ix:nonFraction unitRef="usd" contextRef="i60011d84efde475c8588eb23faee3402_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE2LTMtMS0xLTk0ODUz_84e1258c-2d7a-4b25-b921-e7798dda758e">481,218</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></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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="i74c78e40a8d843199a11606ff8e39c0f_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTEtMS0xLTEwMDY4MA_916af473-e115-41ad-a877-eaae0a99db91">44,214</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ib992952d9d974d5ea61d843c4d3dfe6b_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTMtMS0xLTEwMDY4MA_ae3e99f6-3cb2-4c64-a01c-55dad9ee2732">39,753</ix:nonFraction>&#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%">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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTEtMS0xLTk0ODUz_194a39c8-b713-4552-b0c9-1f1899e98221">33,539</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i9634a0ff62a64c7c97fb012d5f04f764_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTMtMS0xLTk0ODUz_8d5db0b4-47fa-447c-905e-7d3125980c07">43,940</ix:nonFraction>&#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%">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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIwLTEtMS0xLTEwMDY4Mw_c21b8111-8eb4-4569-8943-e5f77830188a">1,924</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="if544a4fb4bc449acb2b6985e0160dd9b_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIwLTMtMS0xLTEwMDY4Mw_ca6d7f10-8635-41e5-b7f4-5cb9317e5ce4">2,119</ix:nonFraction>&#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%">Agency 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="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE5LTEtMS0xLTk0ODUz_2f34e238-511d-4744-b7a8-e46de0387bb9">&#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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie688266910e6494fa1c1ad7173ab67cb_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE5LTMtMS0xLTk0ODUz_4d2f36ae-ac82-4cb1-91ab-facd23785aef">16,077</ix:nonFraction>&#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%">Municipal 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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIxLTEtMS0xLTk0ODUz_371fad07-7e50-4898-b575-2a055b4427a4">&#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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i749ddfecc38f475192a0e44188c51783_I20211231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIxLTMtMS0xLTk0ODUz_26721493-e347-4dac-82be-36842f053986">641</ix:nonFraction>&#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-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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIyLTEtMS0xLTk0ODUz_97d3c8ed-7795-40e9-843f-aabd38ca6e38">454,117</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIyLTMtMS0xLTk0ODUz_c76e3611-2feb-42cc-9d80-d344a9847cf5">583,748</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></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIzLTEtMS0xLTk0ODUz_3a4b1b87-9cb4-4688-b0dd-f87c9600083e">854,250</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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:400;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:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIzLTMtMS0xLTk0ODUz_68c8a8c1-1459-46a8-84ff-e6430fab691d">907,364</ix:nonFraction>&#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></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 cash balance included foreign bank balances totaling $<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DueFromForeignBanks" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIwNQ_008234dd-45f5-487c-8765-8d05b62629ce">160,611,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DueFromForeignBanks" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMg_0fc534cf-64b1-4b64-bac9-ed3a842b577d">142,009,000</ix:nonFraction> as of December&#160;31, 2022 and 2021, 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%">Corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; treasury bills consist of debt securities issued by the U.S. government; municipal bonds consist of debt securities issued by state and local government entities; and sovereign bonds consist of direct debt issued by foreign governments. All of the Company's securities as of December 31, 2022 and 2021 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%">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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:InterestReceivable" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzEwOTM_a54beba4-af7b-4985-8d75-86d581e166c0">3,620,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:InterestReceivable" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzExMDA_aa77b6c0-8e96-4e52-8c75-c97fadea2ced">3,037,000</ix:nonFraction> as of December 31, 2022 and 2021, respectively.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="id63ca71dc6e64a0e8a0197af887400bc" continuedAt="i5b534511d44d45c1948c9922a0743f9d"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzI0MTE_6f2bbe20-c440-4ae5-a63f-5b08a0de182f" 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, 2022 (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%"><ix:nonFraction unitRef="usd" contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItMS0xLTEtOTQ4NTM_7c12ed12-334e-4d87-830f-a6168d748836">167,558</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItMy0xLTEtOTQ4NTM_5cb33839-be65-45db-b969-4b3dc0977007">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%">(<ix:nonFraction unitRef="usd" contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItNS0xLTEtOTQ4NTM_cb41194a-a645-41a2-9250-2a4c84f346c2">3,503</ix:nonFraction>)</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItNy0xLTEtOTQ4NTM_9014190a-52d2-4046-92a2-e0a4073a778a">164,055</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtMS0xLTEtOTQ4NTM_bcb8a759-b04f-4b33-a340-bb38bed3c460">27,607</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtMy0xLTEtOTQ4NTM_5e7ca9a7-bd5b-42d0-95cd-ab08b5a1fb7f">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtNS0xLTEtOTQ4NTM_4425cc8a-65e4-499c-a565-bb6289542ccc">717</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtNy0xLTEtOTQ4NTM_a45535b5-aaef-4446-9e7e-c7259ec64aef">26,890</ix:nonFraction>&#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:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency 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="i605d537deee54d9cbba484cacefee561_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMS0xLTEtMTAwNjkz_1e08d36b-b0fa-4e37-ac83-027766821388">16,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i605d537deee54d9cbba484cacefee561_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMy0xLTEtMTAwNjkz_ed0ac36d-192c-40d7-b7c2-366d0347d5ca">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i605d537deee54d9cbba484cacefee561_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNS0xLTEtMTAwNjkz_5f997733-43c7-4c76-b506-756e020491e5">285</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i605d537deee54d9cbba484cacefee561_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNy0xLTEtMTAwNjkz_337f0e02-3a1f-4dd1-b4d9-837f294fe77a">15,858</ix:nonFraction>&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMS0xLTEtOTQ4NTM_7fe333f3-cfab-4bf0-974f-eb73344017af">11,602</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMy0xLTEtOTQ4NTM_689c7881-db98-4cfb-ad52-9302e986f709">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNS0xLTEtOTQ4NTM_868461ea-8ee0-478e-a1d5-c8bbfd25dfe5">270</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNy0xLTEtOTQ4NTM_b8220751-3b60-4536-8b2c-0e1d74f0aff4">11,332</ix:nonFraction>&#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%">Municipal 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="ib040dc3743ed46ea90055e84346f0443_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctMS0xLTEtOTQ4NTM_74b751bb-7943-463d-b484-d903f1c1f4a0">635</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctMy0xLTEtOTQ4NTM_fafd522d-83ee-425e-a4b0-9766c2eb37ab">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctNS0xLTEtOTQ4NTM_5ce2df75-47f8-4f0c-ba74-01dd3db09089">11</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctNy0xLTEtOTQ4NTM_bf62a44c-5c4f-4860-8291-1db6375d8888">624</ix:nonFraction>&#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;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%"><ix:nonFraction unitRef="usd" contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTEtMS0xLTk0ODUz_d69e401c-78e1-4383-8d43-52d5fcd07a74">394,576</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTMtMS0xLTk0ODUz_0e210f14-c1ee-4918-b391-f7d445d5d3e2">561</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTUtMS0xLTk0ODUz_6a2c241b-05ee-4bf9-806b-810dcd3ef443">20,697</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTctMS0xLTk0ODUz_6a7dc96b-c9b0-429a-917b-1eb844a9c149">374,440</ix:nonFraction>&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTEtMS0xLTEwMDY5OA_c5715194-c551-4333-beaf-fc94f6a9fe26">44,333</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTMtMS0xLTEwMDY5OA_aecf5b32-2d18-4100-b198-22449e4ce9e1">79</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTUtMS0xLTEwMDY5OA_b1b05fde-168c-4ee2-8c05-be4346be6438">198</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTctMS0xLTEwMDY5OA_d514b80e-09a8-47e4-bda6-7bbdba361f10">44,214</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTEtMS0xLTk0ODUz_43aaeea6-ce32-4ff7-9e3d-9fa1011ab807">35,144</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTMtMS0xLTk0ODUz_15c2f133-4711-47e7-9e42-d281cce53f0e">103</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTUtMS0xLTk0ODUz_280a16ad-7f3f-498d-ad28-bf61195809af">1,708</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTctMS0xLTk0ODUz_98c05425-141e-42f5-a7b0-9e1814835f7d">33,539</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTEtMS0xLTk0ODUz_a00ac79c-ef23-4a3a-8e7a-a3bde9584377">2,095</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTMtMS0xLTk0ODUz_e71b6e0d-8abd-4dee-88cc-18c455eb3d1a">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTUtMS0xLTk0ODUz_b81e960b-e73f-4425-a40a-38463df6687a">171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTctMS0xLTk0ODUz_86326cf3-6516-479b-a130-30e2eb69387f">1,924</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTEtMS0xLTk0ODUz_01c6fd7d-f74d-4e76-bb2a-cc9ebb86ef17">699,693</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTMtMS0xLTk0ODUz_26f7bd5b-2d26-4d44-bcbf-60bd111e1ba1">743</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTUtMS0xLTk0ODUz_18e8129b-bc8f-4986-b814-e3c59b6d1557">27,560</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTctMS0xLTk0ODUz_d50acd90-1cff-437a-a571-83d46348be3d">672,876</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><td colspan="3" style="display:none"></td></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 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, 2022 (in thousands):</span></div><div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIzODk_82b23b01-5950-4f09-80e8-22df4009f615" escape="true"><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtMS0xLTEtOTQ4NTM_a33f3f7d-ecad-4cf1-8e0f-a0e570860f6c">285,087</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtMy0xLTEtOTQ4NTM_c966b54b-563b-492c-875a-3191dadb4361">9,591</ix:nonFraction>)</span></td><td style="background-color:#cceeff;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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtNS0xLTEtOTQ4NTM_10ade96e-a6b3-4b81-b1fe-780bec8fcaca">187,153</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtNy0xLTEtOTQ4NTM_7477cb75-646e-487d-a029-83ea8c5fff34">14,609</ix:nonFraction>)</span></td><td style="background-color:#cceeff;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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtOS0xLTEtOTQ4NTM_dfc4cee9-4b65-4d4e-99d7-b4d78241c638">472,240</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtMTEtMS0xLTk0ODUz_b328962c-d743-4b9b-9980-9b579c1adbf8">24,200</ix:nonFraction>)</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%">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="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtMS0xLTEtOTQ4NTM_4fa42214-fc19-448c-ac29-dbdbef6df8ca">47,582</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtMy0xLTEtOTQ4NTM_feef0688-e408-4e34-a49f-c7a7137edf1a">2,299</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtNS0xLTEtOTQ4NTM_6aa9bfbd-3881-4ab6-b143-f3193906d3bc">2,495</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtNy0xLTEtOTQ4NTM_a4a22e0d-50f1-4fe6-b04d-f4bbbe9e4003">126</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtOS0xLTEtOTQ4NTM_e0107f5e-7a3b-4308-a9a7-57b6f0dce084">50,077</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtMTEtMS0xLTk0ODUz_83f37f85-a491-4a68-b3c7-890e12349f9c">2,425</ix:nonFraction>)</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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtMS0xLTEtOTQ4NTM_d5769109-58fe-4e8f-8a2f-61f4984da313">32,614</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtMy0xLTEtOTQ4NTM_af09b1a0-8a33-4218-a777-7ffa38ca1010">465</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtNS0xLTEtOTQ4NTM_6b36be2c-0395-4e16-adc0-6e12d64c87f0">102</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtNy0xLTEtOTQ4NTM_349442c1-b993-4b34-9429-c8d9fb98847e">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtOS0xLTEtOTQ4NTM_95f18f04-0e4c-4c8d-b7ef-6d78562c8641">32,716</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtMTEtMS0xLTk0ODUz_6847255b-7075-4d2f-b161-11f3604321ac">468</ix:nonFraction>)</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%">Agency 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="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtMS0xLTEtOTQ4NTM_e9d41606-3ccb-4129-b19b-8451706fa8bf">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtMy0xLTEtOTQ4NTM_5194e914-ea2c-4559-bae7-ac63e514236f">285</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtNS0xLTEtOTQ4NTM_40a71781-ffb8-41bc-b0d4-9bdee25376fb">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtNy0xLTEtOTQ4NTM_e1d4929a-bf74-4a45-b784-30f1c902cc54">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtOS0xLTEtOTQ4NTM_9d2810fc-dae5-4a6a-b6c0-4d894125ee3b">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtMTEtMS0xLTk0ODUz_19bc9a9a-920e-4dbb-a4f9-87a59a0ec443">285</ix:nonFraction>)</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%">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="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMS0xLTEtMTAwNzA5_ce452e5e-ac2c-4a21-8074-2422ca38b276">967</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMy0xLTEtMTAwNzA5_3e79255b-1594-4871-9076-59098f2f7792">67</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNS0xLTEtMTAwNzA5_33b46f00-f497-4705-bd0b-022479da8156">957</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNy0xLTEtMTAwNzA5_285b7d11-73bc-47a0-a7bd-1348c4fd7826">104</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctOS0xLTEtMTAwNzA5_5ef9c748-2e85-454d-bad8-6daea0622454">1,924</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMTEtMS0xLTEwMDcwOQ_c0f7ba9f-30df-4753-867f-eb73dcd3e4f7">171</ix:nonFraction>)</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%">Municipal 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="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMS0xLTEtOTQ4NTM_011dfc27-2bd0-4241-9caf-78d327cf33cf">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMy0xLTEtOTQ4NTM_fcba3da3-a674-4038-a945-ded83a504c74">11</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNS0xLTEtOTQ4NTM_93146d48-693c-4693-8273-be0178d842a7">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNy0xLTEtOTQ4NTM_5a0a8949-78f1-4b65-933f-575f3c01ac75">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctOS0xLTEtOTQ4NTM_b8f8ce15-37f9-40a8-bfa6-00f8bc0f19c9">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMTEtMS0xLTk0ODUz_f45689a3-1db6-48fc-b267-ce29d8ea3e86">11</ix:nonFraction>)</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 #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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktMS0xLTEtOTQ4NTM_3aec27a5-5364-47cf-91a1-2d054f1b1348">382,732</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktMy0xLTEtOTQ4NTM_9ab870eb-c1b7-47bf-b1ba-5d4723e7e989">12,718</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktNS0xLTEtOTQ4NTM_9e54aa8c-10da-4b96-8ad4-f740ccb48d97">190,707</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktNy0xLTEtOTQ4NTM_84fb62e5-417d-4a54-b152-b32194eb6ee3">14,842</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktOS0xLTEtOTQ4NTM_b613820b-f27d-4589-a1e0-d5a4cfa144b4">573,439</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktMTEtMS0xLTk0ODUz_cc39e1f0-7576-42a2-997d-bd979a753eef">27,560</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></tr></table></ix:nonNumeric></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzU0OTc1NTgxNjg0Ng_09941d4d-a378-42c7-ae30-5bfecf891fbe"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzU0OTc1NTgxNjg0Ng_75302c4c-9c5e-4572-bd58-4fd5f2d18b42"><ix:nonFraction unitRef="usd" contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzU0OTc1NTgxNjg0Ng_772e752c-f4b6-4b08-a034-1164d3b96e98">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> allowance for credit losses on debt securities was recorded as of December 31, 2022, 2021 or 2020. Management currently intends to hold these securities to full value recovery at maturity.</span></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The Company recorded gross realized gains on the sale of debt securities totaling $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMDg_94b9cd03-dd57-4ae0-814e-0cb79a1c9212">133,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMTg_61a6cd09-8be2-4864-885f-c14ace28f6b8">246,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMzI_548485a0-1e70-4335-9255-4804b9df8675">4,283,000</ix:nonFraction> in 2020, and gross realized losses on the sale of debt securities totaling $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIyMDg_858ca16f-784b-48cb-a8f9-fc70860f2446">315,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIyMTg_e7987579-f579-4c15-babc-1b9b9a3ba851">10,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIyMzI_87034d4d-1cd5-4bd6-bdd9-45edba4c0e87">164,000</ix:nonFraction> in 2020. 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: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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">51</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i5b534511d44d45c1948c9922a0743f9d"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIzOTk_b25e70f7-d7db-42b8-adb1-2a41c9417a4e" 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, 2022 (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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMS0xLTEtOTQ4NTM_f6b0f341-a5cb-48e0-ac6f-2bb42a935279">164,055</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><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMy0xLTEtOTQ4NTM_65284d92-482b-4838-b42c-c8b755865359">167,661</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><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtNS0xLTEtOTQ4NTM_203151b1-7534-4723-a7c8-2c2186f2ba14">94,417</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><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtNy0xLTEtOTQ4NTM_c8de021f-2de2-4fd9-91d2-81a8b97a1e5b">63,101</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><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtOS0xLTEtOTQ4NTM_3e5bf98f-cd71-4e61-922b-96c915d2e31d">48,796</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><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMTEtMS0xLTEwMzY4Mg_26f9095f-f5f8-4b38-b4dc-7220316c21c7">465</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><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%"><ix:nonFraction unitRef="usd" contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMTMtMS0xLTk0ODUz_4cdd945f-2177-46d4-88da-d9efc2b81cbf">538,495</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></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%">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="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMS0xLTEtOTQ4NTM_5894e8d6-1b1f-4cd2-9b0c-d7e244a88092">26,890</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMy0xLTEtOTQ4NTM_e33fff0e-1167-404a-9205-20a823c5cc2e">12,755</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItNS0xLTEtOTQ4NTM_e0cb257d-fb30-4a1e-8dd8-515095ea7105">12,587</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItNy0xLTEtOTQ4NTM_152f601c-05f3-42fc-ba29-d25e68f7af0c">8,197</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItOS0xLTEtOTQ4NTM_8dd715d3-fc4b-4d78-8408-9558a7ca3129">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMTEtMS0xLTEwNTUzNw_b127026e-ad48-4783-aa7a-8205009269da">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMTMtMS0xLTk0ODUz_6829fc6e-a228-47f6-9a47-cf934dd3e5bc">60,429</ix:nonFraction>&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMS0xLTEtOTQ4NTM_a5bb0a89-bd12-4b67-9cf0-dc8738aab62e">11,332</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMy0xLTEtOTQ4NTM_f7f09e3b-edec-4634-8a21-a299b70d0114">2,429</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtNS0xLTEtOTQ4NTM_9c3ff413-c13d-41b4-b62d-0e8e45d6d642">6,384</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtNy0xLTEtOTQ4NTM_21c683f2-41fd-447c-b938-f5902c8b7894">17,758</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtOS0xLTEtOTQ4NTM_c537fbda-77d7-49ff-857c-d646f144db60">17,643</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMTEtMS0xLTEwNTUzOQ_a151948e-a89d-452e-8842-7c7d8bab75c5">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMTMtMS0xLTk0ODUz_e163524f-f83c-46e9-896c-1b73a3fdaae6">55,546</ix:nonFraction>&#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="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%">Agency 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="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMS0xLTEtOTQ4NTM_47abe5c6-df46-47cd-aa52-b12c85a246be">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMy0xLTEtOTQ4NTM_d43fc4a5-f6c2-46d9-bf79-a72f06484b75">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtNS0xLTEtOTQ4NTM_b6279afc-929d-49c2-98bb-a793244d43f0">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtNy0xLTEtOTQ4NTM_294ad98e-64ca-48ea-84ed-af09374f6910">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtOS0xLTEtOTQ4NTM_662099a4-5f59-475d-89ed-62ac6fed17c1">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMTEtMS0xLTEwNTU0MQ_bf42cd19-ed33-452d-bcdd-ada4939fbf4d">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMTMtMS0xLTk0ODUz_e20280d0-58ec-4691-8762-0d5ea9439b04">15,858</ix:nonFraction>&#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%">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="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMS0xLTEtMTAwNzIz_398ed28b-e899-4fed-a209-bed2a1d9c987">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMy0xLTEtMTAwNzIz_22a98c81-db68-4e8e-aaab-3a2f474967d9">967</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNS0xLTEtMTAwNzIz_1144e303-b80f-4e9c-999d-004bddfcc663">957</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNy0xLTEtMTAwNzIz_626e4343-ed75-42ad-89ec-17907c2ef8d2">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtOS0xLTEtMTAwNzIz_38821d25-3a50-4130-9fe6-771df6cbd61a">&#8212;</ix:nonFraction>&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMTEtMS0xLTEwNTU0Mw_52c130ab-7505-4eab-aa0a-dcd19b28a3a7">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMTMtMS0xLTEwMDcyMw_e6773d73-d14f-4476-aa08-9e9d88bf5c60">1,924</ix:nonFraction>&#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%">Municipal 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="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMS0xLTEtOTQ4NTM_14913197-1ddc-49dd-a06c-62543290e386">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMy0xLTEtOTQ4NTM_b1ebdd6d-03b6-4308-ab6b-9ab373467ae6">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNS0xLTEtOTQ4NTM_c18ba5ab-16c8-4688-9259-2ca5c36b0e52">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNy0xLTEtOTQ4NTM_acf51027-f3b8-483d-b626-43e51a824d53">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtOS0xLTEtOTQ4NTM_9baf2918-1d5f-4490-8c66-9b0b2abd3f68">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzctMTEtMS0xLTEwNTU0NQ_37993126-dd9b-4439-8688-cbbce0c5bf67">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i913eccf532734d7885578917cd746347_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMTMtMS0xLTk0ODUz_c4e70b1b-2086-4222-8e65-5ee8def9c723">624</ix:nonFraction>&#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 #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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMS0xLTEtOTQ4NTM_977571f7-40bf-4163-a98a-019b4d3692d6">218,759</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMy0xLTEtOTQ4NTM_c8c52259-7f04-4f25-9f32-4f38840ce870">183,812</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtNS0xLTEtOTQ4NTM_b622c4bb-0acf-4720-b5b9-3791573cace9">114,345</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtNy0xLTEtOTQ4NTM_6b2a6685-5cf4-460a-be9f-06f451008067">89,056</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtOS0xLTEtOTQ4NTM_97cdf8fe-195a-422b-923a-0dfa3360fb4f">66,439</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMTEtMS0xLTEwNTU0Nw_590f4969-e759-4301-b1e8-b6011b6a3d01">465</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMTMtMS0xLTk0ODUz_64b73ad7-65ff-4fe5-b9af-18041f5b8cb2">672,876</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></tr></table></div></ix:nonNumeric></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:InventoryDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzM5NQ_d8bb0704-9430-452e-8e92-894e438acf7a" continuedAt="i07885da1cf8f4b1d85519aa50bb0db00" escape="true">Inventories</ix:nonNumeric></span></div><ix:continuation id="i07885da1cf8f4b1d85519aa50bb0db00"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzQwNg_30579e02-2b6e-4fa0-b716-19d673de9642" 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%">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%">2022</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%">2021</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzItMS0xLTEtOTQ4NTM_5ee60afe-b00b-4b87-b53b-0ac63bd07c41">71,720</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzItMy0xLTEtOTQ4NTM_6ae19e7e-416e-40a0-b34b-89203f9adc8b">50,452</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></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:InventoryWorkInProcessNetOfReserves" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzMtMS0xLTEtOTQ4NTM_9a6e30da-aff2-46e5-9e57-b8a578c13e37">906</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:InventoryWorkInProcessNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzMtMy0xLTEtOTQ4NTM_0b8b1092-9f56-41c7-8ae7-827e65e0cb42">5,293</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzQtMS0xLTEtOTQ4NTM_691fe8a9-b429-4967-a7d2-63e1cb7a0560">49,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;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzQtMy0xLTEtOTQ4NTM_310024bf-6a1b-4c79-afd1-796833d1f681">57,357</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzUtMS0xLTEtOTQ4NTM_4dc39941-982f-46b6-a86c-6346615ff1cb">122,480</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzUtMy0xLTEtOTQ4NTM_64aa96b1-3923-4f37-8d93-affb7e4f14a3">113,102</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></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The Company recorded provisions for excess and obsolete inventories of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzE1Mw_17defeae-93df-4be6-8ab0-d02bd1f5790c">3,084,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzE2MA_b1776cf5-b9aa-4560-8c4e-25efbf79d174">2,573,000</ix:nonFraction> in 2022 and 2021, respectively, which reduced the carrying value of the inventories to their net realizable value.</span></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Refer to Note 22 for information regarding losses incurred from the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022, including the impact on inventories and incremental provisions for excess and obsolete inventories recorded as a result of this fire.</span></div></ix:continuation><div><span><br/></span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzU5NA_828a3364-1054-4a95-ab00-06972fd2bef7" continuedAt="i8e328bd54e454f64bcbb1d23f19419ce" escape="true">Property, Plant, and Equipment</ix:nonNumeric></span></div><ix:continuation id="i8e328bd54e454f64bcbb1d23f19419ce"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzYwMA_c0e8bd0b-096f-4561-b7fb-757adc529e54" 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><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%">2022</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%">2021</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="i6e272a23bb514c139f6b134454ffaeee_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzItMS0xLTEtOTQ4NTM_a6a1239c-6679-4458-84b3-da2b1f8358f7">3,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:#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%"><ix:nonFraction unitRef="usd" contextRef="ice8f86701a48433090de5a2b0912eebc_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzItMy0xLTEtOTQ4NTM_440a8e40-2d6e-4a23-be47-c1589f55caa0">3,951</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></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="i84b7d2603a2e4a02912247cf825c6379_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzMtMS0xLTEtOTQ4NTM_901718b9-e8cb-4dd1-b898-4cdb1eac4919">24,533</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i5f0394f5d2ab41368c68fe84b64e89a8_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzMtMy0xLTEtOTQ4NTM_dcdf3ea3-77a8-43c4-9b1a-3e6b09a26912">24,533</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i847049a23e58411caaf58e118c4ad138_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzQtMS0xLTEtOTQ4NTM_b3febad0-134b-450a-aa9e-21031a819746">45,003</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0495920d2da04898b12b2c82d77310aa_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzQtMy0xLTEtOTQ4NTM_5be9eb52-2e56-4e7b-ac5b-023ab7ce0c5e">47,886</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i39f965f20d5f4868bf1dac738b98ae6d_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzUtMS0xLTEtOTQ4NTM_9ee422e3-fb16-4816-a2d8-c2b64108907d">14,491</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i46dbc724c2374c85aee350ae4aabbf7a_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzUtMy0xLTEtOTQ4NTM_01b6ff49-d0cb-4df0-b3d2-75499e7e8bdb">10,436</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic0b2e605af7547a9a85dde4ac9575e36_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzYtMS0xLTEtOTQ4NTM_07bef791-1838-43da-b4a2-f97fa776b24b">53,663</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i63bdb8bcaf6c45c1a6c88354e1c3ca86_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzYtMy0xLTEtOTQ4NTM_e43adbaa-7702-4d74-8f6c-2133a8daa16e">50,748</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ib83d19a4b43e47ef8cd7ecb03f760ec8_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzctMS0xLTEtOTQ4NTM_917588f5-3523-4bd3-a640-87fac3db1eb9">27,176</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie7a93f183b304d60ab4f100858cac07a_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzctMy0xLTEtOTQ4NTM_fcc2f607-0fc9-401c-a6bc-811f1638c5a0">30,562</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i4e7d87a496d44de2879567339065aa1c_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzgtMS0xLTEtOTQ4NTM_d0460457-460c-474c-ab47-4a55f1454f67">6,378</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i42db3fa11317411fa84706594979672a_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzgtMy0xLTEtOTQ4NTM_34747974-5c4a-4723-9d48-042f20ff726f">6,449</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzktMS0xLTEtOTQ4NTM_b8df1b4f-0b0b-4e33-a557-460f4644cf9e">175,195</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzktMy0xLTEtOTQ4NTM_ce818ca8-1d9e-4c9d-a576-d14beb453a4f">174,565</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></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzEwLTEtMS0xLTk0ODUz_f8376990-8ea7-4847-86cc-cb1af98c4c3b">95,481</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzEwLTMtMS0xLTk0ODUz_cb89a91a-2285-4352-b308-efd5db0b994d">97,019</ix:nonFraction>)</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzExLTEtMS0xLTk0ODUz_6c03f71f-f622-488d-808c-f56fb78f0002">79,714</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzExLTMtMS0xLTk0ODUz_707ea2f6-ca25-47da-9605-dc99bf3d1123">77,546</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></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzE5Ng_a79f1fae-a664-432b-a155-3278cd15828a">17,358,000</ix:nonFraction> and accumulated depreciation of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzIzMQ_8b701776-4b90-4cfb-984f-242105db3e40">16,604,000</ix:nonFraction> in 2022, resulting in a loss of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzI2NA_dc48ecb8-33f7-4dcc-b42f-5e5e4a21099c">754,000</ix:nonFraction>. Of this loss, $<ix:nonFraction unitRef="usd" contextRef="i0d12b535f83e4ceb92e3ecc1ce3fbe76_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzU0OTc1NTgxNTI3Mg_bdb1ff83-db35-4ace-b222-34310ee25d14">735,000</ix:nonFraction> relates to production equipment destroyed as a result of the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022 (refer to Note 22) and is included in "Non-cash impact of charges related to fire (Note 22)" on the Consolidated Statements of Cash Flows. The Company disposed of property, plant, and equipment with a cost basis of $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzM0NA_89e643ea-7b83-4e5e-b6a3-a28052b96297">20,647,000</ix:nonFraction> and accumulated depreciation of $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzM3OQ_15fbe7c7-ffbb-4a69-a7f3-7b9b128a5e45">20,614,000</ix:nonFraction> in 2021, resulting in a loss of $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzQxMg_ef15bab1-a623-4759-947a-0b6023348d7b">33,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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">52</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_130"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:LesseeOperatingLeasesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNjQ0MzgzNzMwNjA0_d641c5d1-817d-41f7-bec9-94b4c5bc7fbf" continuedAt="i36b9219292244df99e36cf2b12dd179c" escape="true">Leases</ix:nonNumeric></span></div><ix:continuation id="i36b9219292244df99e36cf2b12dd179c" continuedAt="ia7343d2e1dda459ca4b13d479c27efef"><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's leases are primarily leased properties across different worldwide locations where the Company conducts its operations. 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, 2022 , there were two options to terminate and fifteen 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, 2022. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of 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%">The total operating lease expense was $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzExNzM_e230b18c-7738-479a-84d3-5345379abde2">8,939,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzExOTk_00a95a36-a334-4d50-a371-e1f08e76d770"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzExOTk_a525e00c-5356-4a6b-9f76-361442097103">8,180,000</ix:nonFraction></ix:nonFraction> in both 2021 and 2020. The total operating lease cash payments were $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNTQ_3bd22c9a-d415-4871-b863-e0cfcd575bb5">8,548,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNTg_1e7aa534-a581-47e0-b4bc-97eb7a3bd287">8,225,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNjY_bcba5ef2-0d0e-4269-91e2-057424055008">8,009,000</ix:nonFraction> in 2022, 2021, and 2020, respectively. 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE0NTg_c8be0a4a-051f-4e6d-a2fe-c4f7139f4e59">144,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE0NjI_67c06125-9032-4b83-b7bd-ea8e4341fd34">154,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE0NzA_c8b00f22-150b-48ad-b194-419d85763ba2">123,000</ix:nonFraction> in 2022, 2021, and 2020, respectively.</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzQxMTQ_e2f97469-1884-4e11-95dc-1345a744df55" 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><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%">2023</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzEtMi0xLTEtOTQ4NTM_67735e9c-b9db-4803-b587-e78e41fc991f">9,473</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></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%">2024</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzItMi0xLTEtOTQ4NTM_db07d5f7-d508-45f6-8c05-23a55543e7d1">6,935</ix:nonFraction>&#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%">2025</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzMtMi0xLTEtOTQ4NTM_23f0496d-86e2-4f8c-8c80-5435aa205627">4,975</ix:nonFraction>&#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%">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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzQtMi0xLTEtOTQ4NTM_08c9d85d-ed0e-4eb6-a2e4-04dce1dc11da">3,791</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzUtMi0xLTEtOTQ4NTM_a5fbc8f7-aa4c-45d8-bd09-b3c587573c86">3,353</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzYtMi0xLTEtOTQ4NTM_1edcd628-3824-424a-8353-72ba881d0beb">15,809</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzctMi0xLTEtOTQ4NTM_68b3fae7-4e0b-4676-bd7e-56639781200d">44,336</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></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:OperatingLeaseLiabilityDiscountedPresentValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE2NzI_0f0279c2-104c-428b-947e-72590c3a4efa">39,752,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE2Nzk_ed720472-8a36-4a5e-8951-ecbd0fe33c92">25,581,000</ix:nonFraction> as of December 31, 2022 and 2021, respectively. </span></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2021, the Company entered into a lease for a <ix:nonFraction unitRef="sqft" contextRef="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcwMg_6dd4fd02-c45a-4017-9f79-1cb2c8a2b58a">65,000</ix:nonFraction> square-foot building in Southborough, Massachusetts for a term of <ix:nonNumeric contextRef="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcwOQ_fcfbbd30-5126-438b-aa73-2a132cef636b">ten years</ix:nonNumeric> to serve as a new distribution center for customers in the Americas. The Company has the right and option to extend the term of this lease for an additional period of <ix:nonNumeric contextRef="ib3c018963bbf478b803bd0dd571dd451_D20211201-20211231" name="cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcxMA_4a66e863-dde9-4629-b629-d4a65e3fea48">five years</ix:nonNumeric>, commencing upon the expiration of the original <ix:nonNumeric contextRef="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcxMw_01ab07c6-567c-4864-aa14-9268951887be">ten-year</ix:nonNumeric> term. This lease commenced during the first quarter of 2022, and therefore the Company recorded approximately $<ix:nonFraction unitRef="usd" contextRef="ifd68f7dfd0b24e8a821f44e87cfc53eb_I20221231" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTY5MA_3b9633fd-b0b0-4859-8807-c8b068baaaac"><ix:nonFraction unitRef="usd" contextRef="ifd68f7dfd0b24e8a821f44e87cfc53eb_I20221231" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTY5MA_f99a271e-6779-403c-83b6-0f15a25c51b9">9,271,000</ix:nonFraction></ix:nonFraction> within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date.</span></div><div style="margin-top:4pt;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzI3OTY_937365dd-b9f1-4099-993e-ba4db2db0034">3.3</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzI4MDM_f2332a43-d8ec-460c-9983-d4d2fc51960f">3.4</ix:nonFraction>% for the leases outstanding as of December 31, 2022 and December 31, 2021, respectively. The weighted-average remaining lease term was <ix:nonNumeric contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMDE4Ng_ed131bbd-e99f-42d7-8490-118375fe899a">7.8</ix:nonNumeric> years and <ix:nonNumeric contextRef="i0a741b855258479e8feae873870a21fe_I20211231" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzI5MzY_e468d2f3-e3ca-4017-acae-f28d4d4211db">5.1</ix:nonNumeric> years for the leases outstanding as of December 31, 2022 and 2021, 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%">Management closed eleven leased offices in 2020, prior to the end of their lease terms, as a part of a restructuring plan (refer to Note 23). The carrying value of the lease assets associated with these offices was reduced to <ix:nonFraction unitRef="usd" contextRef="i8428a5c435e443179e4f2794758325f8_I20200628" decimals="-3" name="cgnx:OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzMyNDE_b9540b6b-c108-42f6-9063-4ca4faed3dac">zero</ix:nonFraction>, resulting in operating lease asset impairment charges of $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzMzMDI_7df4308e-7412-4c83-9cb8-14e7507bd1c0">3,427,000</ix:nonFraction> in 2020 that are included in "Restructuring charges" on the Consolidated Statements of Operations. Remaining lease liability obligations associated with the early contract terminations totaled $<ix:nonFraction unitRef="usd" contextRef="i5dd4f9f80b354a32b572aaa1f2285f17_I20221231" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzM0OTg_1b41f820-936b-4503-8fd3-a18ca03a926f">765,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="ic3b49e8ab0bb42d8aadf3956795e5896_I20211231" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzM1MDU_1c1287c5-f6ea-4117-937f-83e7c26e978d">1,717,000</ix:nonFraction> as of December 31, 2022 and 2021, respectively, and are included in "Operating lease liabilities" on the Consolidated Balance Sheets. The Company did not record impairment charges related to <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyMDk0NjI3OTE2NzE3_f7c0adc1-fff6-4724-8df6-067e74b7d592">operating lease</span> assets in 2022 or 2021.</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="ia7343d2e1dda459ca4b13d479c27efef">The Company owns a building adjacent to its corporate headquarters that was partially occupied by a tenant during a portion of 2020. This lease terminated prior to the end of its lease term during the second quarter of 2020, and the Company is now fully occupying this building for its operations. Annual rental income related to this lease totaled $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:OperatingLeaseLeaseIncome" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzQwODg_d8695263-a85b-4862-9427-bfbd86e8a14a">77,000</ix:nonFraction> in 2020.</ix:continuation> </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">53</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_136"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:GoodwillDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90ZXh0cmVnaW9uOmFiMmJmYzE4ZmNhZjQ3NjdiZWUyNGIwOGY4YzBlOTk1XzQyNQ_6f0b038d-b873-4d98-bb0e-b3a8c0405268" continuedAt="idde6bcdeb1324727b6ad96799eb7189f" escape="true">Goodwill</ix:nonNumeric></span></div><ix:continuation id="idde6bcdeb1324727b6ad96799eb7189f"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfGoodwillTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90ZXh0cmVnaW9uOmFiMmJmYzE4ZmNhZjQ3NjdiZWUyNGIwOGY4YzBlOTk1XzQzMQ_0a6ee4d6-172e-465a-9495-3831914d96ef" 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><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, 2020</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%"><ix:nonFraction unitRef="usd" contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzEtMi0xLTEtOTQ4NTM_7ab01696-bfe2-4b90-a553-711d2f55ae6c">244,078</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></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="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%">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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzQtMi0xLTEtOTQ4NTM_f4b7ba35-8fd3-4882-867b-0caa6a26de78">2,365</ix:nonFraction>)</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></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, 2021</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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzYtMi0xLTEtOTQ4NTM_e2c07b27-d137-4cb5-886f-b078c21170d5">241,713</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></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 SAC Sirius Advanced Cybernetics GmbH (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%"><ix:nonFraction unitRef="usd" contextRef="i2d09a9ae0d9f4bc0b5bc26258923e52e_D20220101-20221231" decimals="-3" name="us-gaap:GoodwillOtherIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzctMi0xLTEtOTQ4NTM_7a7edd53-eeac-4af0-bdb2-a844a776f7a1">2,359</ix:nonFraction>&#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%">&#160;&#160;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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzgtMi0xLTEtOTQ4NTM_19521f9c-f89a-481e-a986-25df831ba2aa">1,442</ix:nonFraction>)</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, 2022</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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzktMi0xLTEtOTQ4NTM_fd506a13-6b28-4ff2-ad8a-0cb9ca48bf25">242,630</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></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For its 2022 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 2022, 2021, or 2020.</span></div></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE5MDQ_f97fd01e-32e4-45bc-8d45-c716e11722f7" continuedAt="i0c878b160a9d4f2a8e5d5bbcfc9ffb36" escape="true">Intangible Assets</ix:nonNumeric></span></div><ix:continuation id="i0c878b160a9d4f2a8e5d5bbcfc9ffb36" continuedAt="ibebfc58ed1b142618076f4e66f1638a3"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE5MTA_101d5e1c-b77b-4df0-8481-132ee12f3e00" 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><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%">Completed technologies</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="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzItMS0xLTEtOTQ4NTM_72f97cae-4b01-45a8-8e3c-9e82c35190fa">28,017</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><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%">(<ix:nonFraction unitRef="usd" contextRef="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzItMy0xLTEtOTQ4NTM_107fa961-8cee-4458-a75d-ea599906cd66">17,744</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><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%"><ix:nonFraction unitRef="usd" contextRef="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzItNS0xLTEtOTQ4NTM_53f8fa98-fd7b-4aa9-8fff-cccc9c0bf612">10,273</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></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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzMtMS0xLTEtOTQ4NTM_60bbcc7a-5e25-4466-8d16-830e3f10f6dd">5,838</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzMtMy0xLTEtOTQ4NTM_0c76c7bb-e1eb-4575-a9e1-b7fa3f3af540">3,860</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzMtNS0xLTEtOTQ4NTM_13eccff3-28e1-48cf-927d-6b75b63e7d39">1,978</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></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%">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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6f141c1c8d6049f2b30349071c15c24e_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzUtMS0xLTEtOTQ4NTM_dfdc5cb5-4d51-447c-aaee-65db1c2361f0">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:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i6f141c1c8d6049f2b30349071c15c24e_I20221231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzUtMy0xLTEtOTQ4NTM_63278c63-c98b-48aa-bc4e-8f7dc63dee37">177</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i6f141c1c8d6049f2b30349071c15c24e_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzUtNS0xLTEtOTQ4NTM_182d119c-70e4-4d5e-a983-bc78ba119743">163</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></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: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 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:10pt;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:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzctMS0xLTEtOTQ4NTM_c1db972b-75e6-479d-89e8-52f18ac69475">34,195</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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:10pt;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:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzctMy0xLTEtOTQ4NTM_ead690a0-518a-40e1-b9b8-5a2015047bd3">21,781</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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:10pt;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:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzctNS0xLTEtOTQ4NTM_24206638-b926-4031-a352-a9e138b6f9ef">12,414</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></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #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:3pt double #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:3pt double #000000;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:'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:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</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:700;line-height:100%">Accumulated<br/>Amortization</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: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%">Completed technologies</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: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="i8bab6017cb6946c499661bc2de073401_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzExLTEtMS0xLTk0ODUz_02cece57-839b-47ed-9da0-cc4d2d80a05c">24,217</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i8bab6017cb6946c499661bc2de073401_I20211231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzExLTMtMS0xLTk0ODUz_31d10070-8abb-4275-90f2-19e0e9676840">15,234</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><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%"><ix:nonFraction unitRef="usd" contextRef="i8bab6017cb6946c499661bc2de073401_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzExLTUtMS0xLTk0ODUz_5aa4c080-7f9e-45c8-947f-493cbe87fbb8">8,983</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></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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3e19d5ac14304bb6ba3db1840e190253_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzEyLTEtMS0xLTk0ODUz_382982f3-1705-4682-bb2f-55ff4c45b2e0">10,578</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i3e19d5ac14304bb6ba3db1840e190253_I20211231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzEyLTMtMS0xLTk0ODUz_b599ef39-c75a-41a3-b9aa-140c352f9ea0">7,891</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3e19d5ac14304bb6ba3db1840e190253_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzEyLTUtMS0xLTk0ODUz_48ca6c53-4fb8-4a64-91f5-abb270190d8e">2,687</ix:nonFraction>&#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 2px 7.75pt;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="icf4836dc41804690a3bfeae1104c6bf1_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE0LTEtMS0xLTk0ODUz_be3371a5-82ab-42a4-8bd9-e4f182ccbc5e">710</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="icf4836dc41804690a3bfeae1104c6bf1_I20211231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE0LTMtMS0xLTk0ODUz_c5c3c02b-3c30-42f0-9d0a-b1a9602bb9f8">492</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="icf4836dc41804690a3bfeae1104c6bf1_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE0LTUtMS0xLTk0ODUz_a7c3de0c-de3f-4d05-bc2c-901d3edb7be2">218</ix:nonFraction>&#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%">Distribution networks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i2aad6cd17e034caca4cc804fad03323b_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTEtMS0xLTEwMTgzNA_bd167206-95d4-49e0-be5c-7afb9ff3199d">38,060</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i2aad6cd17e034caca4cc804fad03323b_I20211231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTMtMS0xLTEwMTgzNA_bf85baa4-2ef7-42a0-86b5-4c0b23077b79">38,060</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i2aad6cd17e034caca4cc804fad03323b_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTUtMS0xLTEwMTgzNA_3e41368a-19eb-4063-a978-5e479e940f9d">&#8212;</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ic4f35afad63948a098933637d250b644_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTEtMS0xLTk0ODUz_b7326102-843b-4121-971a-ff76308d49a3">110</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic4f35afad63948a098933637d250b644_I20211231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTMtMS0xLTk0ODUz_7491b132-2fb0-4dda-898f-17255d3a83b4">110</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="ic4f35afad63948a098933637d250b644_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTUtMS0xLTk0ODUz_9c052537-c0c1-4139-a1a8-6b7302ede927">&#8212;</ix:nonFraction>&#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, 2021</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: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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE2LTEtMS0xLTk0ODUz_6a480d15-4dde-426f-8d60-e71d7ebdabfe">73,675</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE2LTMtMS0xLTk0ODUz_f0f8f8cf-5bdc-4e85-b991-cd2474e44a60">61,787</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE2LTUtMS0xLTk0ODUz_ee0c464c-5ade-40b4-bd1b-5489c988d229">11,888</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></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%">In connection with the acquisition of SAC Sirius Advanced Cybernetics GmbH ("SAC") in the fourth quarter of 2022 (refer to Note 21), the Company acquired completed technologies valued at $<ix:nonFraction unitRef="usd" contextRef="ic495a3bd530f4ebca6eb231ec7e6472d_I20221207" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzU0OTc1NTgyMDA1NA_77bbd123-af1c-402d-8594-6dd060aa78aa">3,800,000</ix:nonFraction> with an estimated useful life of <ix:nonNumeric contextRef="i33354f9f10e947f0bbdfd51008fc6673_D20221207-20221207" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzU0OTc1NTgyMDExNg_21ecda91-660d-40ac-9beb-a6cf90c9629f">7</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%">In 2022, the Company retired approximately $<ix:nonFraction unitRef="usd" contextRef="i6b6333f398cb446f874831b0a7ce430b_I20200526" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzU0OTc1NTgxOTgzOQ_3d1fe510-1249-454e-b044-3f53ce12d5d8">43,280,000</ix:nonFraction> of intangible assets primarily related to distribution networks and customer relationships that were fully amortized and had a net carrying value of zero on the Consolidated Balance Sheets.</span></div><div style="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 adverse impact of the COVID-19 pandemic on our business in 2020 triggered a review of long-lived assets, including intangible assets, for potential impairment during the second quarter of 2020. Based on this assessment, management concluded that certain of the Company's finite-lived intangible assets failed the recoverability test, and recorded impairment charges for these assets equal to the amount by which their carrying value exceeded their fair value. The Company also measured the fair value and recorded an impairment charge for its indefinite-lived intangible asset related to in-process technologies. The fair values were established, with the assistance of an outside valuation advisor, using the income approach based on a discounted cash flow model that estimated future revenue streams and expenses attributable to those revenue streams provided by management.</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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ibebfc58ed1b142618076f4e66f1638a3"><div style="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 review resulted in <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEyMDk0NjI3OTEyNTM5_b5a3a977-f818-42cc-9d87-d8c18828a4f9">intangible asset impairment charges</span> totaling $<ix:nonFraction unitRef="usd" contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEwNDQ_cc56f962-105d-4f05-bbef-ca0d38fe2ffb">19,571,000</ix:nonFraction> in the second quarter of 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab Co. Ltd. ("Sualab") as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $<ix:nonFraction unitRef="usd" contextRef="ie67d26e226f842f78def61df0513f4d1_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE0MzM_2490da79-d71d-4595-bbe0-3c7ff3ec0855">10,070,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="idada75d878da464ea026b4a203cbcb10_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE0Mzc_49247849-fe56-442f-a828-2c562e59a4ef">5,900,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="if6cae797bb3e4fd2861d574e8b857954_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE0NDU_74837347-fd88-4d29-89a3-9b0b6f25ceb1">3,382,000</ix:nonFraction>, respectively. In addition, customer relationships acquired from EnShape GmbH that had a gross carrying value of $<ix:nonFraction unitRef="usd" contextRef="if1ff5906f4734040992a6b748f42d812_I20200526" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE1NjE_1f13eb91-f1c2-47f6-9b6d-204a5f2a8622">447,000</ix:nonFraction> and accumulated amortization of $<ix:nonFraction unitRef="usd" contextRef="if1ff5906f4734040992a6b748f42d812_I20200526" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE1OTY_e6705286-0ce2-4355-bb56-657841c8ff21">228,000</ix:nonFraction> on the measurement date were reduced to <ix:nonFraction unitRef="usd" contextRef="i69142dd171a34505a0db9a07131e8fd5_I20200628" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE2Mzk_538ec74e-643f-4d4a-8ccb-2d78a4435b7a">zero</ix:nonFraction>, resulting in an impairment charge of $<ix:nonFraction unitRef="usd" contextRef="i81afe5dc608943d5bc97a00174870022_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE2ODA_148578a5-d9d8-4880-ab09-1432b41af3c2">219,000</ix:nonFraction>. The Company did not record impairment charges related to intangible assets in 2022 or 2021.</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE5MTI_f7c749f9-32ae-413b-815f-7caefc87f3b2" 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><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%">2023</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzEtMi0xLTEtOTQ4NTM_70461dfb-1eb6-409f-ae72-7aceb69b8d8c">3,137</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></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%">2024</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzItMi0xLTEtOTQ4NTM_02535bdc-67f9-4ead-bbae-32f3378cc0a3">2,623</ix:nonFraction>&#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%">2025</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzMtMi0xLTEtOTQ4NTM_95f86612-63ba-42bf-b77f-55a93dc8c4a5">2,300</ix:nonFraction>&#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%">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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzQtMi0xLTEtOTQ4NTM_e6cf788b-2438-4b54-b577-d35943494445">1,995</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzUtMi0xLTEtOTQ4NTM_a9c5141a-951c-4259-a50f-06d40ecb2dfd">1,273</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzYtMi0xLTEtOTQ4NTM_0368ffb2-3170-4070-9092-a7b6344bc1e2">1,086</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzctMi0xLTEtOTQ4NTM_27f9640c-e63b-4e0b-b961-ac5d942dc309">12,414</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></tr></table></div></ix:nonNumeric></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_142"></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzE4NA_1d72a205-70fd-4bb4-9afd-5bb2482024a0" continuedAt="i383405cdbf554147a63d22be725c4eb5" escape="true">Accrued Expenses</ix:nonNumeric></span></div><ix:continuation id="i383405cdbf554147a63d22be725c4eb5"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzE4Ng_7087c05d-aea8-444e-9b16-db6083c857d3" 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%">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%">2022</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%">2021</span></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%">Deferred payments related to Sualab Co., Ltd. acquisition (1)</span></div></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMS0xLTEtMTAyNjc3_d6f4c605-c625-4d4c-8001-992ec0260fd0">19,282</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMy0xLTEtMTAzODIw_01993d34-fbae-4491-afae-264e8ec1044a">&#8212;</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></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%">Incentive 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedBonusesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMS0xLTEtMTExNTI2_6bee1377-012a-4703-a758-47b037effa0c">18,554</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedBonusesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMy0xLTEtMTExNTI2_5306507d-cdcf-4681-8622-7873a4f4d0a9">37,917</ix:nonFraction>&#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%">Salaries and payroll 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:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedSalariesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMS0xLTEtOTQ4NTM_0b6abfad-b0b6-45f6-ab9c-ec3afb451140">8,121</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedSalariesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMy0xLTEtOTQ4NTM_af87c856-7905-401f-9173-771040b72593">8,519</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:RetirementAllowance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMS0xLTEtOTQ4NTM_a0320f1b-09ed-40f2-9f67-937d4f6430f4">7,191</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:RetirementAllowance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMy0xLTEtOTQ4NTM_461786b9-4e65-49da-8cdd-dee94b5d58f4">7,572</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedVacationCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzYtMS0xLTEtMTAyNjcx_00c19693-c5c1-4a33-a7e3-1b431e539b9b">5,847</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedVacationCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzYtMy0xLTEtMTAyNjcx_987eba16-9acf-442a-b2c1-6be7cd459f38">4,686</ix:nonFraction>&#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%">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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzUtMS0xLTEtOTQ4NTM_c1d23fc7-f79f-4cae-8140-b73211c4fc34">4,375</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzUtMy0xLTEtOTQ4NTM_ea866655-526b-40b8-aa12-eff5ceacefa8">5,427</ix:nonFraction>&#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%">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="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzctMS0xLTEtOTQ4NTM_0e5d6ff8-7ead-42bb-9c97-a556e6163b5b">29,865</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzctMy0xLTEtOTQ4NTM_eac80166-e7fa-419d-81e9-c431c79d73e5">28,311</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzgtMS0xLTEtOTQ4NTM_c24b017e-6a0d-43f5-a78c-bb90cbba4990">93,235</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzgtMy0xLTEtOTQ4NTM_6b80c7f1-e71f-4a52-be86-406ddfcb2765">92,432</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></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) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments of $<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzEyNjQ0MzgzNzIwNTkx_49ffd94a-68dc-417a-ab2f-d37e0d24d02e">24,040,000</ix:nonFraction> that may become payable in October 2023, contingent upon the continued employment of key talent. The deferred payments are being recorded as compensation expense over the four-year period, and the accrued balance was reclassified from "Other Liabilities" to "Accrued expenses" on the Consolidated Balance Sheets in the fourth quarter of 2022 when the liability became current.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzE3Mg_6cf46178-3b28-42fb-a70b-89ada874ae68" escape="true"><div style="margin-top:4pt"><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="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, 2020</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="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzEtMS0xLTEtOTQ4NTM_39cb8203-b3d3-426d-b656-d9cbcd2fbc69">5,406</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzItMS0xLTEtOTQ4NTM_234b82af-add2-4276-8596-acf75d3e8890">3,256</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzMtMS0xLTEtOTQ4NTM_3553fb6a-d8f6-42f2-8f1b-76484977874c">3,235</ix:nonFraction>)</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;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 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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzUtMS0xLTEtOTQ4NTM_f6cdff3c-9750-4ddc-bcf6-52bfafad3245">5,427</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></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzYtMS0xLTEtOTQ4NTM_3b3889dd-356b-4ffa-b779-ae229c67a088">1,876</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzctMS0xLTEtOTQ4NTM_ef3bae6f-a99f-4a4d-b4d8-52240f06ad94">2,928</ix:nonFraction>)</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></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, 2022</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: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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzktMS0xLTEtOTQ4NTM_abd4681f-e7e5-406d-b879-005c13981259">4,375</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></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">55</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_145"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 11:&#160;<ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzIyNzQ_498b1d9e-be7a-4c6d-b458-6e848a80cbd7" continuedAt="ia5739c712ce1423892dfeef27beac4c2" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="ia5739c712ce1423892dfeef27beac4c2"><div style="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, 2022, the Company had outstanding purchase orders totaling $<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzEwNw_8e1a8c61-5104-40bd-9145-136ee393c90b">50,942,000</ix:nonFraction> to procure inventory from various vendors, due in part to higher inventory purchases in response to global supply chain constraints. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales 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%">A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2022, 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzU0OTc1NTgxNjQwOA_eaa1aad0-3761-41dc-80ea-04ba10401c84">5,269,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzU0OTc1NTgxNjQ0NQ_770c91b7-f801-4dcd-9488-7d3bdd536c67">547,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzU0OTc1NTgxNjQ1NA_1a077943-f532-4f7a-ab1e-171c09b8066d">1,311,000</ix:nonFraction> in 2022, 2021, and 2020, 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: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></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_151"></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:IndemnificationProvisionsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTEvZnJhZzpiMjVmYzhiYzRiMzY0N2RjODU3ZTNjMjNjNmE2OTk3OS90ZXh0cmVnaW9uOmIyNWZjOGJjNGIzNjQ3ZGM4NTdlM2MyM2M2YTY5OTc5XzIzOTI_b2f0af89-2c5f-4e95-8c05-7fbad0b53fab" continuedAt="i5cf4dc9c89894ae8bca0ce19021b9e31" escape="true">Indemnification Provisions</ix:nonNumeric></span></div><ix:continuation id="i5cf4dc9c89894ae8bca0ce19021b9e31" continuedAt="i074acd7123204b3184dbd16d0b4a5a3d"><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%">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:6pt;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:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="i074acd7123204b3184dbd16d0b4a5a3d">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="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzE0MTQ_fc738d1f-dfd6-4d63-8ed6-7172dc3dd6cb" continuedAt="ib1c145d79aa94f2f8b388d936798784f" escape="true">Derivative Instruments</ix:nonNumeric></span></div><div style="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="ib1c145d79aa94f2f8b388d936798784f" continuedAt="i2f56fa0d92554987a3160446cb93529d">The Company&#8217;s foreign currency risk management strategy is principally 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="i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231" name="us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzQxNg_4fb03e0d-5c61-4391-915a-df18f4554b8b">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 </ix:continuation></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i2f56fa0d92554987a3160446cb93529d"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. </span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzOTU_b0257c63-b6dd-4c75-a487-e60e402458a1" 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%">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, 2022</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, 2021</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%">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:400;line-height:100%"><ix:nonFraction unitRef="eur" contextRef="i7ecee748a7894aa6a34f131488958cd1_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTEtMS0xLTk0ODUz_04d81f7c-8fec-4171-8269-81b936bb6947">60,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i7ecee748a7894aa6a34f131488958cd1_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTItMS0xLTk0ODUz_d397f1b5-180a-46e6-8d30-37c86fd694e5">64,174</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="iab989b088adc40f397c936be994f0791_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTQtMS0xLTk0ODUz_dfaf029f-5d64-40d1-b92b-75ffae9204f9">65,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="iab989b088adc40f397c936be994f0791_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTUtMS0xLTk0ODUz_6754f227-1e47-487f-995c-eed02f6f7e7c">73,748</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="mxn" contextRef="ie9c13de570644705af8147a91ba02f2e_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTEtMS0xLTEwMDczNw_a7638651-d3da-4e62-9b93-c8abb875a6c2">185,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie9c13de570644705af8147a91ba02f2e_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTItMS0xLTEwMDczNw_f7281e83-e140-4328-99c7-7f6ff65a417d">9,480</ix:nonFraction>&#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%"><ix:nonFraction unitRef="mxn" contextRef="iba6ff5ea086646528fb3be8a7fc8d97a_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTQtMS0xLTEwMDczNw_c6f39b87-dce5-465b-9bea-beacf76c843d">140,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="iba6ff5ea086646528fb3be8a7fc8d97a_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTUtMS0xLTEwMDczNw_c980538d-a625-46ab-b097-7fb7c4a22e4f">6,842</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="cny" contextRef="i1988c41f6e6149c3a832fe97087a0a7d_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTEtMS0xLTk0ODUz_5a9ffd70-9979-4341-b185-9605e8650f1e">55,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i1988c41f6e6149c3a832fe97087a0a7d_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTItMS0xLTk0ODUz_68c59223-b500-4c3c-a1d2-2cfa05205efa">7,619</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i7ad598b1eccf4536af708abf2a363022_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTQtMS0xLTk0ODUz_36581b85-c3bc-4f76-9b71-8da286c47321">54,374</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i7ad598b1eccf4536af708abf2a363022_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTUtMS0xLTk0ODUz_99b918ca-f870-4f91-8684-34ce46963b77">8,500</ix:nonFraction>&#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%">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:400;line-height:100%"><ix:nonFraction unitRef="jpy" contextRef="i98df32958b27455ca343eefe9e81c798_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTEtMS0xLTk0ODUz_d0a8e326-ca3c-484b-89f2-232274594dac">700,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i98df32958b27455ca343eefe9e81c798_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTItMS0xLTk0ODUz_7c837066-69ee-470e-a44c-63e77c4f47d9">5,281</ix:nonFraction>&#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%"><ix:nonFraction unitRef="jpy" contextRef="icffc050944dd416487d7e4ecc04e965f_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTQtMS0xLTk0ODUz_ad45dddc-4c38-46fd-a8a9-9af82516275e">600,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="icffc050944dd416487d7e4ecc04e965f_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTUtMS0xLTk0ODUz_6487a80b-8e47-409b-b6f4-2246d9d0f00a">5,213</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="huf" contextRef="ib798cddce68d41218df3982eeea19bd1_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTEtMS0xLTEwMDc0Mw_3898e12a-23ee-4f06-bc7c-4c84d8abea5d">1,590,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ib798cddce68d41218df3982eeea19bd1_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTItMS0xLTEwMDc0Mw_eced05dc-7256-4ae4-8f93-0a3a19cd00b1">4,238</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="ic1a57166d0ca4d52be74fad8e241edf8_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTQtMS0xLTEwMDc0Mw_ade2d1f7-8aae-4696-be3f-aa3dc1624d34">1,355,000</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic1a57166d0ca4d52be74fad8e241edf8_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTUtMS0xLTEwMDc0Mw_b92fab00-226b-47a6-b456-02d3eca4352a">4,155</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="gbp" contextRef="i587de7e154cd4fcbbd086d02ae014d98_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTEtMS0xLTk0ODUz_bfd24b85-d56d-463d-ad3b-373be1035f8d">3,445</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i587de7e154cd4fcbbd086d02ae014d98_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTItMS0xLTk0ODUz_217e4df4-b848-4972-8c06-36b8d9238b9b">4,161</ix:nonFraction>&#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%"><ix:nonFraction unitRef="gbp" contextRef="i49e51c3d3b624282bd5f887efb5825c4_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTQtMS0xLTk0ODUz_0dbf43a4-f0ee-4813-b66d-bdc5a6f97261">3,370</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i49e51c3d3b624282bd5f887efb5825c4_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTUtMS0xLTk0ODUz_9693a703-fc42-4661-af3f-28980ad7f034">4,552</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="cad" contextRef="i21885da1c6cc488cb5c733d3f6f8cb47_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTEtMS0xLTk0ODUz_ee20d29a-c47c-4579-ac78-17ed5b8179da">1,730</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i21885da1c6cc488cb5c733d3f6f8cb47_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTItMS0xLTk0ODUz_57e06be5-ea6c-4acb-8798-e929db212366">1,278</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i344daace626040eab0b599ffda6fa09f_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTQtMS0xLTk0ODUz_93107a15-8ddf-4213-a197-0088222b5c49">1,480</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i344daace626040eab0b599ffda6fa09f_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTUtMS0xLTk0ODUz_39e80c80-486c-4b53-b09c-304f2b2d6837">1,167</ix:nonFraction>&#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:400;line-height:100%"><ix:nonFraction unitRef="chf" contextRef="i2c036298f54845b2ab2a5600c55fdddd_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTEtMS0xLTEwMDc1Mw_16e8d427-1360-4ab1-a0cf-e6d298d21c8b">1,120</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i2c036298f54845b2ab2a5600c55fdddd_I20221231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTItMS0xLTEwMDc1NQ_f20e027e-d4bd-4a89-b5b3-771d9446ec56">1,218</ix:nonFraction>&#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%"><ix:nonFraction unitRef="chf" contextRef="i2111da417047432fb42541c6d0d9488e_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTQtMS0xLTEwMDc1Nw_ec0c4b39-c40a-4b9b-9932-ae95030bb0fc">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i2111da417047432fb42541c6d0d9488e_I20211231" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTUtMS0xLTEwMDc2MQ_9b71acba-74b5-43db-9e93-ad90887cbc9c">&#8212;</ix:nonFraction>&#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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="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></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzOTE_53838a4f-a1ce-4425-94f9-2d4c8ed8fb9e" escape="true"><div style="margin-top:4pt;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, 2022</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, 2021</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, 2022</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, 2021</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%"><ix:nonFraction unitRef="usd" contextRef="i20009c9acfef4520a2b96da0be7ba062_I20221231" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtMy0xLTEtOTQ4NTM_2645923f-7b51-40e3-a7cb-0aaf4e7914f1">27</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><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%"><ix:nonFraction unitRef="usd" contextRef="i68b5dd94706b4891befcd809653efdc4_I20211231" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtNS0xLTEtOTQ4NTM_dcfd7601-b04e-42b9-9568-74a5fe4bb578">39</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i20009c9acfef4520a2b96da0be7ba062_I20221231" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtOS0xLTEtOTQ4NTM_d694b21e-6a3c-4934-af1e-bd7ca5163f58">479</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><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%"><ix:nonFraction unitRef="usd" contextRef="i68b5dd94706b4891befcd809653efdc4_I20211231" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtMTEtMS0xLTk0ODUz_00235494-1989-435d-bf29-d9b46979e0d6">230</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:OffsettingAssetsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzODY_63285a22-daa4-4407-8d4c-cb839d7534c2" escape="true"><div style="margin-top:4pt"><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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec"><span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00">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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2"><span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c">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, 2022</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, 2021</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, 2022</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, 2021</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItMi0xLTEtOTQ4NTM_cdb9ecb1-30f2-42cf-bf60-11d5000b1780">27</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItNC0xLTEtOTQ4NTM_dba0de8c-9a13-48b5-9c18-1d666c7930ad">39</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItOC0xLTEtOTQ4NTM_65c4f8cc-8a79-4348-adae-1a6c6ab3fb3b">479</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItMTAtMS0xLTk0ODUz_e19c2c1f-aad5-497b-adb4-caa9cde4fb6f">230</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></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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtMi0xLTEtOTQ4NTM_030129fc-7161-4d79-a169-e68fef76c21a">&#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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtNC0xLTEtOTQ4NTM_5803bd1c-5dbd-4b8a-9c6c-6d5e89ca4225">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding: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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtOC0xLTEtOTQ4NTM_e667f170-a277-4cbb-b885-1ed35efcde92">&#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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtMTAtMS0xLTk0ODUz_abaafcfd-f6ce-4811-8c0a-c6660880b377">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtMi0xLTEtOTQ4NTM_ddab604f-96f5-4191-82fd-7d7ede647770">27</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtNC0xLTEtOTQ4NTM_6f083109-6748-44ec-9845-498fb382ed4e">39</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtOC0xLTEtOTQ4NTM_cef02bfe-89b7-4755-af95-6698ca72be86">479</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtMTAtMS0xLTk0ODUz_3a70fe1d-37f4-41a1-a455-1676f8c90102">230</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></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzODg_635d9363-8532-42bc-aef2-a06ea0ceaf14" escape="true"><div style="margin-top:4pt;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%">2022</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%">2021</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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpiMjY3YmNkMzc4Yzk0MGEzOGMzNzBkNDk3YzBkMDhmYi90YWJsZXJhbmdlOmIyNjdiY2QzNzhjOTQwYTM4YzM3MGQ0OTdjMGQwOGZiXzExLTMtMS0xLTk0ODUz_cefea150-5877-4f16-9523-c9142ced5aa5">9,823</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><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%"><ix:nonFraction unitRef="usd" contextRef="i18f2b093d8ef4faeb9106cba76769131_D20210101-20211231" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpiMjY3YmNkMzc4Yzk0MGEzOGMzNzBkNDk3YzBkMDhmYi90YWJsZXJhbmdlOmIyNjdiY2QzNzhjOTQwYTM4YzM3MGQ0OTdjMGQwOGZiXzExLTUtMS0xLTk0ODUz_14cff13c-420f-4bf2-8ec1-c445406c481e">4,262</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"></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%">(<ix:nonFraction unitRef="usd" contextRef="ia0409d6ec51840b99360b72efdabca9b_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpiMjY3YmNkMzc4Yzk0MGEzOGMzNzBkNDk3YzBkMDhmYi90YWJsZXJhbmdlOmIyNjdiY2QzNzhjOTQwYTM4YzM3MGQ0OTdjMGQwOGZiXzExLTctMS0xLTk0ODUz_641b565f-2a3d-414f-abee-ffaca7fb25d6">12,308</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></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">57</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_157"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTc_2cb01995-63ce-42be-ad74-930b77e48e6a" continuedAt="i1bc71bfed087420ea88e663724d0e690" escape="true">Revenue Recognition</ix:nonNumeric></span></div><ix:continuation id="i1bc71bfed087420ea88e663724d0e690" continuedAt="i9a5efc59c6374cd89857d34d44ea3de0"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTQ_49a626d9-dd6e-48ff-bf0a-d582e6db5cfd" escape="true"><div style="margin-top:6pt"><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%">2022</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%">2021</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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="ib70b837829b5456a899f0f811c0f555d_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzItMi0xLTEtOTQ4NTM_25358ade-e592-4088-bf78-f65356a96fe0">390,573</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><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%"><ix:nonFraction unitRef="usd" contextRef="iae85366661da4de081ce1375ed5e731e_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzItNC0xLTEtOTQ4NTM_a7736367-bc0b-475e-99ad-e3d93e184374">435,220</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><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%"><ix:nonFraction unitRef="usd" contextRef="ib9e2b52ed5bb45ef8c66a470bb6a342a_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzItNi0xLTEtOTQ4NTM_4c0b9fef-45b7-4b27-a19e-adfec383df9b">310,027</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><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%"><ix:nonFraction unitRef="usd" contextRef="i81c26265146a4e0cabd3a5ad1dc520f4_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzMtMi0xLTEtOTQ4NTM_ef312494-b374-40e5-a270-fb48c8587d02">234,643</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i81e4d0ae1cdb4710abb92bad9ac6186e_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzMtNC0xLTEtOTQ4NTM_19ab4e0e-4342-48b2-9856-1a0e80f95ccf">247,744</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie55ae60220f64f2a9333aff7cb5e7e79_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzMtNi0xLTEtOTQ4NTM_d2e5407b-0e15-474a-9403-755719d3fea6">208,787</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ifacc8a191ed34cc3956d7cb3c18bfb50_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzQtMi0xLTEtOTQ4NTM_b2c22aea-bc78-4054-84d9-c575473f5752">227,447</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="iad4f830115f54196885c8808f5f26002_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzQtNC0xLTEtOTQ4NTM_d4737acb-b1fc-4516-8cea-38d788955938">200,135</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ia5f10baf3e6e431791d90b042d2b7dbe_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzQtNi0xLTEtOTQ4NTM_5a58c6bc-8dd0-486e-a2e4-c64a5fc1a5f0">168,287</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="id9705c408ea24703bb700064bc764cbb_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzUtMi0xLTEtOTQ4NTM_ab789876-1fac-47d5-adfe-c34d133a5dc5">153,427</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i1d373b49f6174306934e3595c281e1e1_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzUtNC0xLTEtOTQ4NTM_a056c314-cfad-42c4-b17d-4f6450fbbf50">153,999</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ia901fbb0e0df41bdab322f5b54ac1bad_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzUtNi0xLTEtOTQ4NTM_4b5bd113-b633-496d-8acf-3eb3486356f9">123,919</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzYtMi0xLTEtOTQ4NTM_615c2084-9d5c-44d7-82cf-f4c65a1fb5b3">1,006,090</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzYtNC0xLTEtOTQ4NTM_95f029c3-5b6e-44b8-b9b0-a2f2678fcdd3">1,037,098</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzYtNi0xLTEtOTQ4NTM_8b75625b-f35c-4ce2-b6e4-90b77ff15018">811,020</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><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:6pt;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%">2022</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%">2021</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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="i18aac435bfc44c8d91524b6f7ac4c4bd_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzItMi0xLTEtOTQ4NTM_f25fb8f0-e37f-4a30-b684-9fe0e488cbbc">848,153</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><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%"><ix:nonFraction unitRef="usd" contextRef="i9b83fa1334a04a0a9f161d83664e05ad_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzItNC0xLTEtOTQ4NTM_e90e6659-5c42-4e0a-8b6f-7473073be6dd">889,253</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><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%"><ix:nonFraction unitRef="usd" contextRef="idc7cf366ab9e4fc58b28582ef840dcbf_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzItNi0xLTEtOTQ4NTM_ddcddbfc-7da6-408e-a12d-29516a46d7a7">674,830</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></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%"><ix:nonFraction unitRef="usd" contextRef="ibdd9b5e3e33e412b94c27b42dbaf106f_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzMtMi0xLTEtOTQ4NTM_ebb27807-aa7e-4535-9280-ec06d7646460">157,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;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i52080a684e8546c28f54f8515153e8bc_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzMtNC0xLTEtOTQ4NTM_debbfa0a-814c-4750-9bc1-52f83c4aaaf2">147,845</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i840dd08d66f74017901da8e43d8c6597_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzMtNi0xLTEtOTQ4NTM_30d6ca9d-9569-465e-a783-14112c921014">136,190</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzQtMi0xLTEtOTQ4NTM_f5d44d51-774f-424c-abca-648e00c44a2a">1,006,090</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzQtNC0xLTEtOTQ4NTM_a9eaa6c7-b5b6-4880-99d3-a213cb58fa32">1,037,098</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzQtNi0xLTEtOTQ4NTM_9d583641-7469-4a14-9101-9ec8e02cbc15">811,020</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></tr></table></div></ix:nonNumeric><div style="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:3pt;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:CapitalizedContractCostGross" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzQ0OA_48ed358f-415a-4e83-9812-39c0e0623e05">14,578,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="us-gaap:CapitalizedContractCostGross" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzQ1NQ_f87bb42f-f975-4e5b-851f-769323053d19">10,854,000</ix:nonFraction> as of December 31, 2022 and 2021, respectively. </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%;text-decoration:underline">Accounts Receivable, Contract Assets, and Contract Liabilities</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%">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 for primarily 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTI_96784a90-77c2-4744-953f-6840f77df682" 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%">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, 2020</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="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzEtMS0xLTEtOTQ4NTM_90091250-2f6b-476c-a53c-779a1fff4975">831</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></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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzItMS0xLTEtOTQ4NTM_15cf172d-dd0e-4bca-a608-8946b9961876">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzMtMS0xLTEtOTQ4NTM_29c81dbb-3981-4a45-ba6f-b106b78f9bc6">55</ix:nonFraction>)</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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzQtMS0xLTEtOTQ4NTM_5a4c1365-b559-4e10-8603-3da2b33d4c00">&#8212;</ix:nonFraction>&#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, 2021</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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzUtMS0xLTEtOTQ4NTM_9c79065f-ee0d-4efd-bcaf-0d82ff0d84fa">776</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></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzYtMS0xLTEtOTQ4NTM_e2101032-5207-49cc-b3dc-00039f7622d2">191</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzctMS0xLTEtOTQ4NTM_5d980560-c567-42be-8b14-eb6764256110">237</ix:nonFraction>)</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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzgtMS0xLTEtOTQ4NTM_fb1c4271-33a6-4d87-8d0d-3962ddc95c99">&#8212;</ix:nonFraction>&#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, 2022</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzktMS0xLTEtOTQ4NTM_bdd8e029-ff34-4a69-b147-3808ffa944b2">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:#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></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i9a5efc59c6374cd89857d34d44ea3de0"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTY_008aa13b-f151-46f8-aa2c-f0fdfb4616d3" escape="true"><div style="margin-top:3pt"><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, 2020</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="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzEtMS0xLTEtOTQ4NTM_69ffada3-dd2c-42a6-a93d-ece738ac82aa">21,274</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></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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzItMS0xLTEtOTQ4NTM_6fb99409-b279-4ebe-8d9f-56df84e917b2">31,907</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzMtMS0xLTEtOTQ4NTM_991b833a-5552-447b-8746-a892fd631a15">17,403</ix:nonFraction>)</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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="cgnx:ContractLiabilityForeignExchangeRateChanges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzQtMS0xLTEtOTQ4NTM_bc3257e0-ea70-452d-bdd4-3fdabdf03c97">35</ix:nonFraction>)</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, 2021</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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzUtMS0xLTEtOTQ4NTM_ef157332-d3c1-4669-9bab-63c024ddb9dd">35,743</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></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzYtMS0xLTEtOTQ4NTM_20315df2-0eae-4b99-b792-a899d9626071">39,076</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzctMS0xLTEtOTQ4NTM_f94227b7-4d22-451d-a2fa-e84e03edc184">31,520</ix:nonFraction>)</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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="cgnx:ContractLiabilityForeignExchangeRateChanges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzgtMS0xLTEtOTQ4NTM_9d332541-3610-4c1e-80ed-18b8334b5d0e">2,512</ix:nonFraction>)</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, 2022</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzktMS0xLTEtOTQ4NTM_812cf063-339c-482c-9dbc-8ae352ed9bc7">40,787</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></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;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, as our contracts have an original expected duration of less than one year.</span></div></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI4MDA_b492e657-1b04-4520-a3f3-90196a25a679" continuedAt="i532c35aecb1147e3a9a5d85900c5dd44" escape="true">Shareholders&#8217; Equity</ix:nonNumeric></span></div><ix:continuation id="i532c35aecb1147e3a9a5d85900c5dd44" continuedAt="i652efe4619c843148888b15b87baec9d"><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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzY3_803a541b-bb99-4706-a421-d2f678c63225">400,000</ix:nonFraction> shares of authorized but unissued $<ix:nonFraction unitRef="usdPerShare" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwNA_8faa0198-cf90-4843-972c-b751b1e904a8">.01</ix:nonFraction> par value preferred stock.</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%;text-decoration:underline">Common Stock</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 April 25, 2018, the Company's shareholders approved an amendment to the Company's Articles of Organization to increase the authorized number of shares of $<ix:nonFraction unitRef="usdPerShare" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzMwNA_1ef3b378-9d27-499f-8f4e-63dd20ae3871">.002</ix:nonFraction> par value common stock from <ix:nonFraction unitRef="shares" contextRef="ib921dcc1cc8d4e88a94ac95519191beb_I20160427" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzMzNQ_cce7126a-65c4-4b66-85fb-eff6cfb04dd9">200,000,000</ix:nonFraction> to <ix:nonFraction unitRef="shares" contextRef="i6d16014c79974e6fb04ffdb4c2528fbe_I20180425" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzM0MQ_355534ab-680c-4f9a-8489-915e4d045e02">300,000,000</ix:nonFraction>. In addition, on April 25, 2018, the Company's shareholders approved an amendment and restatement of the Company's 2001 General Stock Option Plan which provides for an increase in the number of available shares by <ix:nonFraction unitRef="shares" contextRef="i7dd30073d67c43e2812004d92b58a950_I20160428" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU1OA_eec5333b-abc8-4ef4-8082-3bfdf142aa40">10,000,000</ix:nonFraction>.</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%">Each outstanding share of common stock entitles the record holder to <ix:nonFraction unitRef="vote" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="cgnx:VoteEntitledForEachCommonShareOutstanding" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzYzMQ_1c19c8b9-4058-4929-95a4-69f06b528d3a">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 October 2018, the Company's Board of Directors authorized the repurchase of $<ix:nonFraction unitRef="usd" contextRef="ia3238462e92a44c0ae2e712757ed9221_I20181029" decimals="-3" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzkxMQ_01c907f5-2217-477c-bc47-20cc01f899f3">200,000,000</ix:nonFraction> of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="ie6281c7cdeee4c578f9ad7920151d770_D20200101-20201231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwMzc_3fff886a-4fe0-4518-b0da-e8f59b9a6775">1,215,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="ie6281c7cdeee4c578f9ad7920151d770_D20200101-20201231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwNjA_a47acb58-a7df-4f77-b1ef-e747a1697791">51,036,000</ix:nonFraction> in 2020, and <ix:nonFraction unitRef="shares" contextRef="i20998dd8746d49b29fd688382c97aeb7_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwNzY_c4538391-d8a6-47f3-b651-087e692c6a46">957,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="i20998dd8746d49b29fd688382c97aeb7_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwOTk_7eb609e8-a120-4c45-964a-887695fe0b88">78,652,000</ix:nonFraction> in 2021, which completed purchases under the October 2018 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%">On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $<ix:nonFraction unitRef="usd" contextRef="ifab0fd91112c44ebacbc15ea89678db9_I20200312" decimals="-3" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEyNTI_9cc53012-afd7-46c5-a7bc-55245922c12d">200,000,000</ix:nonFraction> of the Company's common stock. Under this March 2020 program, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEzNDE_e7bd26f5-207e-47b5-8e02-bce5867f66db">1,060,000</ix:nonFraction> shares, including <ix:nonFraction unitRef="shares" contextRef="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231" decimals="-3" name="cgnx:StockRepurchasedDuringPeriodSharesNotYetSettled" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEzNjI_37be99b9-f17b-4e19-acd1-b94f30b897d8">5,000</ix:nonFraction> shares that were repurchased in 2021 and settled in 2022, at a cost of $<ix:nonFraction unitRef="usd" contextRef="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzE0MzU_377ad537-412f-4c85-bc8e-6540bb08be9c">83,000,000</ix:nonFraction> in 2021, and <ix:nonFraction unitRef="shares" contextRef="i1c6c593e915b44a68ec713b3fbb6f688_D20220101-20221231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzU1Ng_03ee4600-734f-4ea8-ba79-c06c305866f3">1,677,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="i1c6c593e915b44a68ec713b3fbb6f688_D20220101-20221231" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzU1Nw_a73d390e-9e9a-4c5d-9646-a82b39f8a0fd">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%">On March 3, 2022, the Company's Board of Directors authorized the repurchase of an additional $<ix:nonFraction unitRef="usd" contextRef="ie6e2d81d493141e893a1652480ab4ceb_I20220303" decimals="INF" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzUxNg_44734474-d8a1-450e-b4a1-41c80b4fa921">500,000,000</ix:nonFraction> of the Company's common stock. Under this March 2022 program, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="i60d41a5c281445d585b275a0175e25d8_D20220101-20221231" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzU0MA_525cfd12-75a1-4db6-8f98-138c44158eab">1,682,000</ix:nonFraction> shares at a total cost of $<ix:nonFraction unitRef="usd" contextRef="i60d41a5c281445d585b275a0175e25d8_D20220101-20221231" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzUzNg_941f77b4-21d3-4cdb-a41a-88d57789de6b">87,314,000</ix:nonFraction> in 2022, leaving a remaining balance of $<ix:nonFraction unitRef="usd" contextRef="i242da384c8724307bae1667f3b953759_I20221231" decimals="INF" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzUzNw_689f03c7-26fc-49d9-a5aa-7256e1b2d46d">412,686,000</ix:nonFraction>. 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></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i652efe4619c843148888b15b87baec9d"><div style="margin-top:9pt"><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="i018c267db8b54cdfacef801a78c54b1c_D20200101-20200927" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzE5ODI_3edcb1ca-057e-4d5d-b216-2e8000203be0">0.055</ix:nonFraction> per share in the first, second, and third quarters of 2020, $<ix:nonFraction unitRef="usdPerShare" contextRef="ifea9b05d219041a59056b8419ba26427_D20200928-20211003" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIwNDU_6aaa7162-cd04-4fc5-a4c9-4432fdaf3622">0.060</ix:nonFraction> per share in the fourth quarter of 2020 and in the first, second, and third quarters of 2021, and $<ix:nonFraction unitRef="usdPerShare" contextRef="i59d6aaa50cca4cfc8c89677ea2083144_D20211004-20211231" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIxNDY_5f37d2fb-9b89-4e2d-baac-05e1fc3c0bea">0.065</ix:nonFraction> per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022. The dividend was increased to $<ix:nonFraction unitRef="usdPerShare" contextRef="ifeda0162266f40cd80c621dc7f7da27c_D20221003-20221231" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIyNzM_580a0862-cfa3-4687-ae96-88c4b6729493">0.070</ix:nonFraction> per share in the fourth quarter of 2022. Also, in the fourth quarter of 2020, an additional special cash dividend of $<ix:nonFraction unitRef="usdPerShare" contextRef="iaa0536bb7dff46ebb738c081718a9e47_D20200928-20201231" decimals="2" name="us-gaap:CommonStockDividendsPerShareDeclared" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIzOTM_8e3b601d-4c0f-4fc7-8ffa-9f1f7c283346">2.00</ix:nonFraction> per share was declared and paid. </span></div><div style="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 $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:PaymentsOfDividends" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI0NTY_f049f406-0135-4306-b1ca-8f2f2b14091c">45,921,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:PaymentsOfDividends" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI0Njg_8cd10da2-7c5d-4605-b84a-4784a3150556">43,263,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:PaymentsOfDividends" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI1Mzg_2f31fd38-daec-4451-a2f2-a945d7ed354a">390,508,000</ix:nonFraction> in 2020, which included $<ix:nonFraction unitRef="usd" contextRef="ib4f96f1570614880a47ab7de0dda2e5c_D20201228-20201228" decimals="0" name="us-gaap:PaymentsOfDividends" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNjg4MQ_eb4b45f0-4b83-4259-be61-bf47c74bb41c">351,428,000</ix:nonFraction> paid for the special cash dividend. 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 id="id8333d090d7e467c8f0fde3d2520d2ed_166"></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5ODI_855aedc4-793b-4f49-9a62-0dc3a778ec89" continuedAt="i51dccf2c991348e6a55bcf52e74cc88f" escape="true">Stock-Based Compensation</ix:nonNumeric></span></div><ix:continuation id="i51dccf2c991348e6a55bcf52e74cc88f" continuedAt="i353ad05a9f344b208338ecac725726cd"><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"). As of December&#160;31, 2022, the Company had <ix:nonFraction unitRef="shares" contextRef="i22b0d598b4fe4da1a5dd6844d5ee95d2_I20221231" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIxOQ_08e989b4-733d-45af-81e0-58050f69e456">13,746,000</ix:nonFraction> shares available for grant 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQxOQ_c6e18e1b-cdd3-47f6-b8c9-e6aa92ec6c90">four</span> or <ix:nonNumeric contextRef="i70d17755323542f395648f6e1a2b02ef_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQyNQ_560bc457-5c87-447f-a20b-1aa95f88cf38">five years</ix:nonNumeric> based on continuous employment and expire <ix:nonNumeric contextRef="id4860aff35104dc9a6211278167eb085_D20220101-20221231" name="cgnx:ExpirationPeriodOfStockOptionPlan" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQ3MA_915abb6a-130f-456a-ae43-925aa54a2817">ten years</ix:nonNumeric> from the grant date. RSUs generally vest upon <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTUyMw_6d2dc99c-b10e-466b-8589-3aaaaf893c81">three</span> or <ix:nonNumeric contextRef="i394340cf869a431da92e0d5b7725e378_D20220101-20221231" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzUxOQ_c75aef80-6909-4a26-9f97-1df0a3377040">four years</ix:nonNumeric> of continuous employment or incrementally over such <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU3NA_94a4b7d7-3177-48cc-8502-c9b251159bed">three</span> or <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU1Mg_549c1e4c-b873-4d43-b5af-c44d64bbde49">four</span> year periods. PRSUs generally vest upon <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU3MQ_059c1591-f5c2-4f6e-9f51-65b36f7301c1">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5NTQ_3451040d-0ffb-4592-a4c5-12a17844c205" 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><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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2021</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="shares" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzEtMS0xLTEtOTQ4NTM_94290911-3cbc-4412-88e3-4364dd758e71">7,610</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzEtMy0xLTEtOTQ4NTM_a6a5ae08-bdad-45a1-a63e-8fac885b5c9f">49.38</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><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%"><ix:nonFraction unitRef="shares" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzItMS0xLTEtOTQ4NTM_b6716897-dbcd-40d6-9cbd-5d84e92f86af">1,418</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usdPerShare" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzItMy0xLTEtOTQ4NTM_b6ee6182-afd2-4089-afc7-7ba5b3c8a854">59.63</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="shares" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzMtMS0xLTEtOTQ4NTM_23b27bfa-4344-4c35-bbfc-b98bfcceeab0">365</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzMtMy0xLTEtOTQ4NTM_5cdf56fc-725b-415e-be44-e1c166ae4d6a">33.58</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding: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%">(<ix:nonFraction unitRef="shares" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzQtMS0xLTEtOTQ4NTM_525b7f0e-8b69-401a-9c46-a937816ac6c6">196</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usdPerShare" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzQtMy0xLTEtOTQ4NTM_a132deba-5720-4368-9211-1108f368b4a7">58.90</ix:nonFraction>&#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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2022</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="shares" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtMS0xLTEtOTQ4NTM_f78d2e2f-ba97-414a-a18c-f5648b5f9576">8,467</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtMy0xLTEtOTQ4NTM_ea9dc202-1411-4073-8ecd-6ef1634d1e08">51.56</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><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%"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtNS0xLTEtOTQ4NTM_3c427abb-1a14-49c9-99b6-3e45d78a9972">6.13</ix:nonNumeric></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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtNy0xLTEtOTQ4NTM_c3ef26c2-d559-4fc7-b34f-17a1080e7e75">31,327</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></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%">Exercisable as of December 31, 2022</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtMS0xLTEtOTQ4NTM_a7d9ddb9-d187-49a2-9a10-e9c824a18eb8">4,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-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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtMy0xLTEtOTQ4NTM_0a05175a-0a4b-450d-867c-c01e3c1dd78d">44.71</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><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%"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtNS0xLTEtOTQ4NTM_c7dcfdbf-1955-431c-8fab-6b8c9f99f2ad">4.94</ix:nonNumeric></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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtNy0xLTEtOTQ4NTM_ce096d94-7dbe-4352-a86b-1e5982e976a1">31,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:#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"><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;<br/>&#160;December 31, 2022 (1)</span></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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctMS0xLTEtOTQ4NTM_695585cd-1d73-48ee-8c67-f69192fc9c97">8,038</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctMy0xLTEtOTQ4NTM_14981cf1-26e7-48ed-81a0-25c78cfd4dd2">51.10</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><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%"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctNS0xLTEtOTQ4NTM_1d3d7639-a728-4666-9f3e-676c61a54b4a">6.01</ix:nonNumeric></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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctNy0xLTEtOTQ4NTM_b9ca6ac5-925b-4c62-bd06-e8e22a256baf">31,224</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></tr></table></div><div style="margin-top:4pt;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></ix:nonNumeric><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5NjU_52975811-7e38-4506-b855-19f207cb4355" 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 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%">2022</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%">2021</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%">2020</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="id4860aff35104dc9a6211278167eb085_D20220101-20221231" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzItMS0xLTEtOTQ4NTM_181ab874-c3f6-47d5-8755-53883868bb49">2.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;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%"><ix:nonFraction unitRef="number" contextRef="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzItMy0xLTEtOTQ4NTM_0cceeb94-7d11-4943-ad66-987952cf0a99">1.3</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><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="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzItNS0xLTEtOTQ4NTM_56bd18ac-944f-4746-a737-b6241ee08c60">1.4</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="id4860aff35104dc9a6211278167eb085_D20220101-20221231" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzMtMS0xLTEtOTQ4NTM_e9cdedb9-ab2e-48c0-934c-0c8e75fdc4c3">0.44</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><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzMtMy0xLTEtOTQ4NTM_eafb67bf-784b-48dc-b65c-39d95e120efc">0.27</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><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzMtNS0xLTEtOTQ4NTM_8422c423-1b25-48a7-a6f2-c53af9be3fd3">0.41</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="id4860aff35104dc9a6211278167eb085_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzQtMS0xLTEtOTQ4NTM_4a6bf1ed-455b-49b2-b4cf-6fc5296ab98e">37</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><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzQtMy0xLTEtOTQ4NTM_2bae7bb3-148d-4b20-9428-6a89ea34a3a7">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><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzQtNS0xLTEtOTQ4NTM_41d0c47e-647f-4ce4-965a-1fb460c9dca4">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="id4860aff35104dc9a6211278167eb085_D20220101-20221231" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzUtMS0xLTEtOTQ4NTM_d116867d-015e-40e1-9ee4-06bb3ae2cd69">5.5</ix:nonNumeric></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%"><ix:nonNumeric contextRef="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzUtMy0xLTEtOTQ4NTM_feea9eac-d0bb-4545-9366-76a9cbb63624">6.0</ix:nonNumeric></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%"><ix:nonNumeric contextRef="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzUtNS0xLTEtOTQ4NTM_df70273a-df63-4501-ba9a-91249c005248">6.0</ix:nonNumeric></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i353ad05a9f344b208338ecac725726cd" continuedAt="if84cd525e9394e9cb6674d516fa29e01"><div style="margin-top:4pt"><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"><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:9pt"><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%">Generally, the current dividend yield is 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:9pt"><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:9pt"><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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE4OTc_7eaacc79-d715-49ca-9e80-6c1cf47300e9">21.39</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usdPerShare" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5MDc_5eca450f-30de-4223-be13-fddc0caeba54">33.79</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usdPerShare" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5MjE_d557aba0-4487-419e-86a9-1ba6a3a74008">19.62</ix:nonFraction> in 2020.</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 total intrinsic value of stock options exercised was $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5ODg_0f8c304f-b1dd-428e-8ead-c1c3eb4a859f">8,424,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5OTg_58781c12-c1d4-4c6e-aede-757cf6daf3e0">80,369,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwMTI_186bec27-1812-4f74-80f7-3f3f06f48703">166,796,000</ix:nonFraction> in 2020. The total fair value of stock options vested was $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwNzE_8ec4715f-fc4a-4403-8abd-fbdf6ca7f748">41,497,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwODE_f144ff48-78b8-4974-b6ad-f6333738dde9">45,328,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwOTU_99ab8fda-f540-4f69-9ad8-df5ff20afcf3">45,998,000</ix:nonFraction> in 2020.</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">Restricted Stock Units (RSUs)</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5Nzg_58deea73-053d-4aaf-a796-017ab85b7936" 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><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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2021</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="shares" contextRef="ib5f16cd1416c489a93f58f559fee5607_I20211231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzEtMS0xLTEtOTQ4NTM_4b786a9d-3b19-4ddf-9592-9f1c759f8a5c">823</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="ib5f16cd1416c489a93f58f559fee5607_I20211231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzEtMy0xLTEtOTQ4NTM_cd5fa2cf-b6be-4f27-a04c-6d2d71143a1e">65.26</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></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="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzItMS0xLTEtOTQ4NTM_892ed321-2a09-443a-9e06-5edab0e99678">715</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzItMy0xLTEtOTQ4NTM_28526929-70f2-4372-9419-88c9b4dfa616">58.06</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="shares" contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzMtMS0xLTEtOTQ4NTM_46ba7aaf-a5c4-4a95-9b95-c300fe24bdf0">192</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzMtMy0xLTEtOTQ4NTM_3ef87c93-ae02-4c9d-80f8-a60d9a098f20">61.96</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="shares" contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzQtMS0xLTEtOTQ4NTM_b8c444b8-9368-432b-8504-15e2c56f2bd0">77</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzQtMy0xLTEtOTQ4NTM_aafbe7a7-cbec-4ecc-b481-9dcd157a1408">64.65</ix:nonFraction>&#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%">Nonvested as of December 31, 2022</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="shares" contextRef="i49f359f65be049c7a1f584ac2826c227_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzUtMS0xLTEtOTQ4NTM_e97f796c-7c0e-4d71-907a-8361daed0e8a">1,269</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i49f359f65be049c7a1f584ac2826c227_I20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzUtMy0xLTEtOTQ4NTM_0aa25609-7993-4ad2-8ada-3392bb9ae4f8">61.74</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></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;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 is 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="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIxOTkwMjMyNjE5OTI_0848d0b7-a2a9-4424-b2f7-4b8556230e61">58.06</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usdPerShare" contextRef="idb41a0641d09484fbb0e795616ffd333_D20210101-20211231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI0NDY_c64bc36c-9a2a-4544-a0b8-4240efefe45e">87.03</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usdPerShare" contextRef="i67dcdda7132f4c88a2876592c4fa2161_D20200101-20201231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI0NTM_921f578c-10bf-499d-a908-54252b45c746">52.09</ix:nonFraction> in 2020. There were <ix:nonFraction unitRef="shares" contextRef="i45d73e790e074e1aa9cf9bb5112efe60_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTg2NQ_7cbd24ab-2409-44c3-b11a-ab48da39e965">192,000</ix:nonFraction> RSUs that vested in 2022, <ix:nonFraction unitRef="shares" contextRef="idb41a0641d09484fbb0e795616ffd333_D20210101-20211231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI0ODI_1c320699-3874-4fdc-803e-6a4a62a93027">16,000</ix:nonFraction> RSUs that vested in 2021, and <ix:nonFraction unitRef="shares" contextRef="i67dcdda7132f4c88a2876592c4fa2161_D20200101-20201231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI1MTU_cad3fa00-ad42-409d-bc36-38c617c94a05">no</ix:nonFraction> RSUs that vested in 2020.</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzEyNjQ0MzgzNzI1OTU0_be92c11d-5509-48da-adf1-ffe9f07fc0a8" 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">Performance Restricted Stock Units (PRSUs)</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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2021</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="shares" contextRef="i51307a0012ee4d178b5c962dbfad699c_I20211231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzEtMS0xLTEtMTExNzY0_1533df86-44f5-46ee-9e2d-e03d762cd719">&#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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i51307a0012ee4d178b5c962dbfad699c_I20211231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzEtMy0xLTEtMTExNzY2_9c88cbeb-1c12-4264-9671-850805f8935c">&#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></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="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzItMS0xLTEtMTExNzY0_a915d638-bbcf-44a3-b706-0b2700c423de">33</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzItMy0xLTEtMTExNzY2_9ea2f93d-0418-4f2a-8d18-2b81305353aa">62.49</ix:nonFraction>&#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%"><ix:nonFraction unitRef="shares" contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzMtMS0xLTEtMTExNzY0_480e400b-d4f8-4958-8b7f-27aded073195">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usdPerShare" contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzMtMy0xLTEtMTExNzY2_1591da3f-d1ea-4449-aac9-12b3dfa51571">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="shares" contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzQtMS0xLTEtMTExNzY0_55cf0867-4f31-4637-997a-51fd75d7b0ec">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzQtMy0xLTEtMTExNzY2_85880002-4013-4372-8ed8-5074174b6ee7">&#8212;</ix:nonFraction>&#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%">Nonvested as of December 31, 2022</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="i6cb0c6ba9c924090b591e3c9734f0d98_I20221231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzUtMS0xLTEtMTExNzY0_e8724baf-24b4-4cea-a362-3e09f11421b8">33</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><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%"><ix:nonFraction unitRef="usdPerShare" contextRef="i6cb0c6ba9c924090b591e3c9734f0d98_I20221231" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzUtMy0xLTEtMTExNzY2_89736a19-0232-4c02-9886-662c4451fc6c">62.49</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"></td></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%"><ix:nonFraction unitRef="shares" contextRef="iec52b2002cc947d3a004109ad8cf70d7_D20210101-20211231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_2f0e298b-baad-4bc3-aff9-d92d6c5e9d7b"><ix:nonFraction unitRef="shares" contextRef="iecc601f5f32b49d286f9088c84383e7b_D20200101-20201231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_a2b47db0-d32b-4315-a98a-ab7bac03633f"><ix:nonFraction unitRef="shares" contextRef="iecc601f5f32b49d286f9088c84383e7b_D20200101-20201231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_acaebf0b-457c-41ef-8b1a-6f3b3e9fddfc"><ix:nonFraction unitRef="shares" contextRef="iec52b2002cc947d3a004109ad8cf70d7_D20210101-20211231" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_dc18b14a-7622-4b61-9990-f15c64a76490">No</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> PRSUs were granted or vested during the years ended December 31, 2021 and December 31, 2020.</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 fair value of PRSUs is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant.</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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">61</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="if84cd525e9394e9cb6674d516fa29e01"><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">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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="INF" name="cgnx:NumberOfGroupsWithinEmployeePopulation" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI2Mzg_612b103b-7079-4d89-8170-438c1b61f35e">two</ix:nonFraction> groups: one 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI3OTQ_9cbc1ded-7760-42b4-b41a-a2ac225a3304">7</ix:nonFraction>% to stock-based awards for senior management and a rate of <ix:nonFraction unitRef="number" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI4NTc_efbffa4e-c3ea-44b3-81d2-14070f5e5b5d">12</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 an increase to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMwMTc_5e4e0ea9-4ce7-4db0-a968-46f64c25fa3d">1,536,000</ix:nonFraction> in 2022, a decrease to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMwNjY_705bf624-36b5-48ca-b48a-6bb2a4df43b1">255,000</ix:nonFraction> in 2021, and an increase to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMxMTg_759c6e9b-7b5a-49ae-a43a-3b72e7bde250">1,787,000</ix:nonFraction> in 2020.</span></div><div style="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, 2022, 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMyNzE_4bffbe81-8716-4407-a265-3c64bf732e93">56,694,000</ix:nonFraction>, which is expected to be recognized over a weighted-average period of <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMzNDQ_bda7b4f4-b3bf-49fa-8e00-7e2f28d5400d">1.51</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0NDc_6cb9b2e4-e34d-4da6-b5a0-1071675cef91">54,505,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0NTQ_164688bb-795a-4394-85e8-091ea5a10fc0">9,540,000</ix:nonFraction>, respectively, in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0Nzk_0e150bef-8e1c-408e-94bf-64ce894469f4">43,774,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0ODY_b747032a-a8f9-4913-99ec-cbc505e27b9f">6,764,000</ix:nonFraction>, respectively, in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM1MTU_4fc38a4d-06d3-4d64-b70a-eef62ecf6db1">42,661,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM1MjI_cd7e8f5c-732d-4327-aeff-545506a3d904">6,569,000</ix:nonFraction>, respectively, in 2020. Stock-based compensation expense recognized in 2020 included credits of $<ix:nonFraction unitRef="usd" contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628" decimals="-3" name="us-gaap:ShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM2MTk_a81c1025-a95f-4f21-a317-55c43032a1b4">1,401,000</ix:nonFraction> relating to grants cancelled as a result of the Company's workforce reduction in the second quarter of 2020. No compensation expense was capitalized in 2022, 2021, or 2020.</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5NzI_cd8c892d-95f2-4f9a-a60b-dd227d39598e" 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><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%">2022</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%">2021</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%">2020</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="ic2ae8f77de9b4c799265cfb17a22c13f_D20220101-20221231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzItMS0xLTEtOTQ4NTM_aa170e5a-bdb9-4b27-9e2e-bd6c55be5e58">2,016</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><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%"><ix:nonFraction unitRef="usd" contextRef="i26f0a2662e014a07bed517edfdabf032_D20210101-20211231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzItMy0xLTEtOTQ4NTM_ebf25189-db54-4113-b513-c65a5f0765c1">1,345</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><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%"><ix:nonFraction unitRef="usd" contextRef="ieaf5e8110105465bbdcd174be6c7c3c7_D20200101-20201231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzItNS0xLTEtOTQ4NTM_4e85d02b-7e43-406a-b973-134119c76ce8">1,365</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></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="icbcf6bf0255a43d490f7a609261ad0d9_D20220101-20221231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzMtMS0xLTEtOTQ4NTM_248fbbbd-a799-482a-80a2-07412ffb1dde">17,693</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i5c36aa17c9c346899dd928d5f7b29ba0_D20210101-20211231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzMtMy0xLTEtOTQ4NTM_372bb0b9-a9b9-4833-906c-37009a5534d0">13,535</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i59acadfa63d64b228e29c41c5b239bb3_D20200101-20201231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzMtNS0xLTEtOTQ4NTM_4cadf2bf-b309-47bd-a081-6486531ed905">13,387</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i5a430819d9be410f96a87b715ae593a0_D20220101-20221231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzQtMS0xLTEtOTQ4NTM_b97857c2-86a6-4ef1-ba06-3d983ac91064">34,796</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i8ced57d781a744e6b8adea75821d589e_D20210101-20211231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzQtMy0xLTEtOTQ4NTM_fcb05b00-798e-441b-9be1-11e7773af8e9">28,894</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i7ef3fe8205994c6fa8c7d6dced93ab94_D20200101-20201231" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzQtNS0xLTEtOTQ4NTM_2ca2b5e6-cb6c-444e-a16f-7a115e4ac687">27,909</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzYtMS0xLTEtOTQ4NTM_6d551120-29fe-43de-b983-a66a5fce0e1f">54,505</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzYtMy0xLTEtOTQ4NTM_ca745ded-a85e-47ba-ab80-76cef3a7aac9">43,774</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzYtNS0xLTEtOTQ4NTM_15db9d90-4ebd-42cb-94da-ae9576f1e55d">42,661</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></tr></table></div></ix:nonNumeric></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzc0MA_e87eee8f-5125-494d-a979-1fdc5eeaecf2" continuedAt="i860b3bad78c44291b0d787be5b567184" escape="true">Employee Savings Plan</ix:nonNumeric></span></div><div style="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="i860b3bad78c44291b0d787be5b567184">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan" format="ixt-sec:duryear" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzE0OQ_db2a6582-bd95-4e03-8c1b-66411cffaf83">21</ix:nonNumeric> may contribute up to <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzE3Mw_fe7a2951-ae95-471e-8cf3-0ebd9cce0c57">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzM2NQ_420d7b41-cc06-45cf-9ad8-002d2e4757c0">50</ix:nonFraction>% of the first <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzM4MQ_29f05e9f-774d-4db2-8793-7bcfbd91750c">6</ix:nonFraction>% of pay an employee contributes. Company contributions vest <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfOneYear" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ0Mw_7f2964d1-ffd9-4989-9c5e-8ed1916b43ba">25</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfTwoYear" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ0Nw_15dab50d-22a5-4460-a5ad-68d0e463b90d">50</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfThreeYears" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ1MQ_e159eb83-54df-45af-9dfb-61f8c605de3f">75</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfFourYears" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ1OQ_2093e679-234d-4abd-9201-623d0f92f0b9">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzU4Nw_fc0ccfd1-bd42-42cf-8692-9c353e35f5a4">3,284,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzU5Nw_ffce0175-f61c-460d-8d40-6102f7640f1c">2,898,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzYxMQ_4a94c401-a491-430f-be06-619d743be25e">2,636,000</ix:nonFraction> in 2020. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</ix:continuation></span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:IncomeTaxDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzgwNDc_479dacf9-8e33-4d52-bdb9-811a7ee560f3" continuedAt="i116c91fd0ebc4de4862aa8cf5f6531e0" escape="true">Income Taxes</ix:nonNumeric></span></div><ix:continuation id="i116c91fd0ebc4de4862aa8cf5f6531e0" continuedAt="i0cf61649a5a1482ba46c840103b26ece"><div style="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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzYx_3ddca2d1-2c90-4ae8-8e9e-3522f2552e62">48,546,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0Xzcx_cb0dfbc4-24d4-452b-b89c-c26ac8cc5073">121,729,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0Xzg1_7ace09ee-ac54-4745-bda0-794a76876ed0">39,425,000</ix:nonFraction> in 2020. Foreign income before taxes was $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNw_c937a2c7-5fae-4168-933a-d8bc8d24bdb5">202,149,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEzNw_6f38e821-4929-4139-ab77-98f2e6f071dc">197,171,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzE1MQ_f43d6215-6f20-417b-b7bd-fe220ea6b0af">147,486,000</ix:nonFraction> in 2020. </span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzgwNzE_d070b6f0-b416-4c44-a540-41f171d0f39e" 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><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%">2022</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%">2021</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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzMtMS0xLTEtOTQ4NTM_ce14e51a-590f-4316-928a-6b5436c57b26">48,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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzMtMy0xLTEtOTQ4NTM_510067cd-0046-4acb-b229-cd0934bdae3e">27,870</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzMtNS0xLTEtOTQ4NTM_437ca96b-21d2-4524-9917-f1bcdc4c6a5c">160</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzQtMS0xLTEtOTQ4NTM_2234c013-d66e-42d4-8087-096cdec0578e">5,689</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzQtMy0xLTEtOTQ4NTM_7c01cb63-f436-4ec3-80f0-7c9c38bfd1a8">5,372</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzQtNS0xLTEtOTQ4NTM_06d4b948-77aa-4fbd-8d17-a8ebcb0c707b">921</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzUtMS0xLTEtOTQ4NTM_26a4821c-3050-476f-a9b8-6ce6da53f07b">10,243</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzUtMy0xLTEtOTQ4NTM_1ab4d49c-ef32-4916-868e-968ebddf9531">8,406</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzUtNS0xLTEtOTQ4NTM_4ebe8b22-433e-48a8-9df4-344260a668fc">13,197</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzYtMS0xLTEtOTQ4NTM_14887d6e-bc72-48fa-8625-09d18c2e69e8">64,287</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzYtMy0xLTEtOTQ4NTM_92b0ff8c-ecd9-485c-bbcc-d82ad7ab70cb">41,648</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzYtNS0xLTEtOTQ4NTM_76bdeafb-29f9-470a-88ec-2d08639b805f">14,278</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></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;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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzgtMS0xLTEtOTQ4NTM_e35f7555-a17c-4339-ac52-7412a21aec3f">40,772</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzgtMy0xLTEtOTQ4NTM_031dd09a-a807-4b8b-b8c9-34d622582aee">19,266</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzgtNS0xLTEtOTQ4NTM_15187654-286c-48ee-8e39-17a244e7fb0d">18,266</ix:nonFraction>)</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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzktMS0xLTEtOTQ4NTM_c2fb8c71-25c3-4637-80dd-597724806f21">8,354</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzktMy0xLTEtOTQ4NTM_c2633041-8564-4626-9554-21e19770b41c">769</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzktNS0xLTEtOTQ4NTM_64c69ad9-ecaf-4e20-b34f-53cb963a472e">556</ix:nonFraction>)</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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEwLTEtMS0xLTk0ODUz_9321fa34-24d0-4d0c-95ea-7aa60184aa1d">20,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:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEwLTMtMS0xLTk0ODUz_23196dfe-f63d-4277-a9e7-b1119eeee9e7">17,406</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEwLTUtMS0xLTk0ODUz_c157a303-9a3b-4f49-b5ac-b0a94685b4ef">15,269</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzExLTEtMS0xLTk0ODUz_005d853e-39f4-4055-b860-c370c8ff9d55">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"></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%">(<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzExLTMtMS0xLTk0ODUz_2fdb285d-9f6d-427f-8bd5-731cdd0dfe7d">2,629</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><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%">(<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzExLTUtMS0xLTk0ODUz_82046f58-a9dc-4db2-bea4-e8483c47d3b5">3,553</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></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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEyLTEtMS0xLTk0ODUz_979e739f-b42d-45ec-b565-3ed5d929ebfb">35,170</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><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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEyLTMtMS0xLTk0ODUz_17cba26b-127c-4901-9b9a-0f91a3b61c7a">39,019</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><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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEyLTUtMS0xLTk0ODUz_bb0c5501-4e6e-44f2-8e19-8fe5ad265ed9">10,725</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></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:'Times New Roman',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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i0cf61649a5a1482ba46c840103b26ece" continuedAt="i2d07c3a76ac1471185403021cc07892a"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyODc3_f39b5f16-fa02-45df-bef1-6fec9e59fa99" escape="true"><div style="margin-top:4pt;text-align:justify"><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%">2022</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%">2021</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%">2020</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzItMS0xLTEtMTEyMTEz_2ef0eeb4-5e87-46d9-a0de-60e74d5f943c">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><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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzItMy0xLTEtMTEyMTE1_8e9e6bc7-f466-4ea7-8e1e-26a2fda77054">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><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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzItNS0xLTEtMTEyMTE3_4091a551-8b5f-4fb4-bc6e-4d5c31b1f896">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzMtMS0xLTEtMTEyMTEz_0ea975d2-642c-41e4-a7e5-ed6b14ea3c5a">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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzMtMy0xLTEtMTEyMTE1_d5c3c3de-2e6e-4eca-a0b2-153a81d68340">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzMtNS0xLTEtMTEyMTE3_1a51c89e-5319-4302-a359-47ef433c71a5">1</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzQtMS0xLTEtMTEyMTEz_cf1c7faa-8bee-4ac0-8c60-d5ef9271224a">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="number" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzQtMy0xLTEtMTEyMTE1_b20e91b0-5513-4fa5-b315-ab25bf310416">5</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzQtNS0xLTEtMTEyMTE3_49f9bd7b-54c0-41c6-afbd-45d9a85920de">6</ix:nonFraction>)</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 credit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzUtMS0xLTEtMTEyMTEz_204b7b9b-c8b2-4adc-8141-beb4a8eec0bb">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzUtMy0xLTEtMTEyMTE1_2931c9fb-61a4-4ef0-9ffc-b0f9f8e3820b">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzUtNS0xLTEtMTEyMTE3_c72bdaf3-5347-4b0d-9159-5c69373a64e0">1</ix:nonFraction>)</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%">Discrete tax benefit related to employee stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzctMS0xLTEtMTEyMTEz_cc7bd879-c414-4490-afe4-f18d12d1b89b">&#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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzctMy0xLTEtMTEyMTE1_dc930514-8968-4158-8981-7667cc64b623">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzctNS0xLTEtMTEyMTE3_17efff05-35ef-410b-9a62-6fd36a2b29a4">7</ix:nonFraction>)</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 tax return filings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzgtMS0xLTEtMTEyMTEz_5b02bfc9-8cde-48b2-b14f-d1ca3a853202">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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzgtMy0xLTEtMTEyMTE1_fb388087-d82f-4e51-8855-f2e28740fb72">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzgtNS0xLTEtMTEyMTE3_716bfd73-7288-4c8a-bdc7-ee2147d1d689">5</ix:nonFraction>)</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 related to a rate revaluation on state 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:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzktMS0xLTEtMTEyMTEz_614a8e05-946c-450b-8df2-0ffb9678d11e">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="number" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzktMy0xLTEtMTEyMTE1_01957e63-b9c7-48ff-acab-502b16faa284">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzktNS0xLTEtMTEyMTE3_379f61cb-320d-499e-b3b3-5603db0d19b2">&#8212;</ix:nonFraction>&#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:115%">Discrete tax benefit related to GILTI adjustments</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:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEwLTEtMS0xLTExMjExMw_b6a0c831-5493-4ca8-b9fe-05a70946cb19">3</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEwLTMtMS0xLTExMjExNQ_a1446252-bc4f-45f6-9283-b2781659c244">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEwLTUtMS0xLTExMjExNw_25c38a4f-7c8e-4947-8f0c-73bb3bf0500b">&#8212;</ix:nonFraction>&#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:115%">Discrete tax expense related to international tax reserves</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzExLTEtMS0xLTExMjExMw_465eb324-5be2-401b-9882-70c8a68e66e5">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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzExLTMtMS0xLTExMjExNQ_cd4889ea-b728-40f0-afc0-52d21c7d5359">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzExLTUtMS0xLTExMjExNw_d07a5863-eb75-4de5-95ac-5308bb7db8e7">1</ix:nonFraction>&#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 benefit for audit settlements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEyLTEtMS0xLTExMjExMw_28b895a7-0469-4f96-954c-f359c6385f1a">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEyLTMtMS0xLTExMjExNQ_f2785956-5beb-45d8-abec-998b0738f3f1">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEyLTUtMS0xLTExMjExNw_5bca0f41-f406-4cd6-9374-33cc7df4575f">&#8212;</ix:nonFraction>&#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%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEzLTEtMS0xLTExMjExMw_1016923e-664a-43a7-bade-0b0151acc04a">1</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="number" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEzLTMtMS0xLTExMjExNQ_ec892b86-61f1-454d-bf59-38c19061967a">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEzLTUtMS0xLTExMjExNw_8e8b1fc5-ef15-4d76-9e89-c71f8be0a389">&#8212;</ix:nonFraction>&#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%">Limitation on executive 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTEtMS0xLTExNjI3OA_b5c88853-bffb-49b5-bb39-136020352f61">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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" format="ixt:fixed-zero" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTMtMS0xLTExNjI3OA_3bc56150-8f9d-4ba6-9fde-39b17e14a9dc">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTUtMS0xLTExNjI3OA_dea0700f-79fa-43d6-9d69-1b68a2373fd3">1</ix:nonFraction>&#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%">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTEtMS0xLTExMjExMw_eac48c05-67ae-43f6-93a7-fa50cad5d977">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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTMtMS0xLTExMjExNQ_cb26f037-9283-4008-9846-935b52fef11e">1</ix:nonFraction>&#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%"><ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTUtMS0xLTExMjExNw_bf84a2ea-76bd-43ef-8521-a7117a26b0dd">1</ix:nonFraction>&#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%"><ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE2LTEtMS0xLTExMjExMw_e90ec749-249e-4e6b-8ee7-edf520aabcd0">14</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><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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE2LTMtMS0xLTExMjExNQ_5261028d-39a5-4b77-8723-be3aeeeec0cb">12</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><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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE2LTUtMS0xLTExMjExNw_61bb5ac6-e1f0-4fbf-ac42-fe4308f108a4">6</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><div style="margin-bottom:8pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SummaryOfIncomeTaxContingenciesTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyODc4_449f093e-3e0a-40e6-b1a3-e19af13fc001" 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 the reserve for income taxes, excluding gross 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="padding:2px 1pt;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 of reserve for income taxes as of December 31, 2020</span></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzAtMS0xLTEtMTEyMTIx_47aaf3e5-c76b-4d29-84fc-77c8a4062021">13,952</ix:nonFraction>&#160;</span></td><td style="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%">Gross amounts of decreases in unrecognized tax benefits 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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzEtMS0xLTEtMTEyMTIx_a7b910df-a416-48d2-8e48-ad49eb4e2496">280</ix:nonFraction>)</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%">Gross amounts of increases in unrecognized tax benefits 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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzItMS0xLTEtMTEyMTIx_a18149c6-e6fc-478b-9367-e79a9c6c29fc">100</ix:nonFraction>&#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%">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current 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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzMtMS0xLTEtMTEyMTIx_594547b3-10ca-4a5b-acba-581d5c902c06">525</ix:nonFraction>&#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></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%">Gross amounts of decreases in unrecognized tax benefits 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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzUtMS0xLTEtMTEyMTIx_9b8a4f18-f27b-427a-94df-8cdb85d514a1">485</ix:nonFraction>)</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 of reserve for income taxes as of December 31, 2021</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="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzYtMS0xLTEtMTEyMTIx_d163cccc-3bfe-47d7-a7c6-6043184802cf">13,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"></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%">Gross amounts of decreases in unrecognized tax benefits 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzctMS0xLTEtMTEyMTIx_bdf1ba51-8f77-4d72-8c05-8c15e0d26053">119</ix:nonFraction>)</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%">Gross amounts of increases in unrecognized tax benefits 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzgtMS0xLTEtMTEyMTIx_e809d13a-f68e-41dc-9051-3c52587b71c1">2,850</ix:nonFraction>&#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%">Gross amounts of increases in unrecognized tax benefits 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzktMS0xLTEtMTEyMTIx_8b65adca-d228-4eb0-aade-7f0f201cf577">505</ix:nonFraction>&#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%">Gross amounts of decreases in unrecognized tax benefits 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzEwLTEtMS0xLTExMjEyMQ_3dfa1efc-982f-4d13-b893-9579344992a5">2,329</ix:nonFraction>)</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%">Gross amounts of decreases in unrecognized tax benefits 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzExLTEtMS0xLTExMjEyMQ_93a78cab-bd22-4671-905d-cd7fac549af0">1,072</ix:nonFraction>)</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 of reserve for income taxes as of December 31, 2022</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzEyLTEtMS0xLTExMjEyMQ_3884d033-6133-4d48-9683-909b4b5c0ec8">13,647</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></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 reserve for income taxes, including gross interest and penalties, was $<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="cgnx:UnrecognizedTaxBenefitsGross" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4MDI5_768e2f80-be62-493b-80bb-2b1c1dd0449c">15,866,000</ix:nonFraction> and as of December 31, 2022, which is classified as a non-current liability. The Company's reserve for income taxes, including interest and penalties, was $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="cgnx:UnrecognizedTaxBenefitsGross" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4MTg3_87231f95-2a02-4533-8049-8af8a6953f3e">15,808,000</ix:nonFraction> as of December 31, 2021, which included $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4MjMx_ab8d7c50-885f-4d38-87f8-67148f1392bc">14,780,000</ix:nonFraction> classified as a non-current liability and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4Mjc3_bc78cbd5-aba4-4e48-b300-2fe9b72d64f8">1,028,000</ix:nonFraction> recorded as a reduction to non-current deferred tax assets. The amount of gross interest and penalties included in these balances was $<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="0" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4NDE2_8db2cdd0-5d49-4e6f-96ab-0d37002bf6df">2,219,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="0" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4NDI0_69bfb45a-bea1-43da-a14b-2de03e982bec">1,996,000</ix:nonFraction> as of December&#160;31, 2022 and 2021, 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4ODc4_f5fc57b3-3103-47ce-bac4-ac2a7043545e">1,000,000</ix:nonFraction> to $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4ODg1_748bb01a-6d8c-4345-9755-900bff3a7652">1,500,000</ix:nonFraction> over the next twelve months.</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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">63</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i2d07c3a76ac1471185403021cc07892a" continuedAt="ic9b20d00fcd645b0959f1eaccdce982e"><div style="margin-bottom:8pt;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, and Korea and within the United States, Massachusetts. The statutory tax rate is <ix:nonFraction unitRef="number" contextRef="ibc0be7986f054a1eaa3d2887a5e677b1_D20220101-20221231" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MDkw_0fb13271-e192-451f-ba30-d1d70d6111c1">12.5</ix:nonFraction>% in Ireland, <ix:nonFraction unitRef="number" contextRef="i4526d1f7d6a24522bb915ff66995bb84_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MTA2_fdcdcffe-e79a-478a-90e8-9f751d2b9185">25</ix:nonFraction>% in China, and <ix:nonFraction unitRef="number" contextRef="i2cdf322ae13e4b169074cb9700a7529c_D20220101-20221231" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MTI0_83b0a71e-9556-4121-be21-e85a46ab0f09">21.5</ix:nonFraction>% in Korea, compared to the U.S. federal statutory corporate tax rate of <ix:nonFraction unitRef="number" contextRef="i45af88e9e3d940d4a2e79f5bddd71867_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MTk5_a01a7dbd-a82e-4d89-96fc-6a5821548625">21</ix:nonFraction>%. These differences resulted in a favorable impact to the effective tax rate of <ix:nonFraction unitRef="number" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5Mjgy_c1234dc7-22a2-40e6-b014-9c60f3898908">7</ix:nonFraction> percentage points for 2022, <ix:nonFraction unitRef="number" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MzEz_edc1fe36-398e-40a0-8989-bbd2d2b0045d">5</ix:nonFraction> percentage points for 2021, and <ix:nonFraction unitRef="number" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MzQ4_a7b13222-c08c-47a0-9b80-0db6d2c88420">6</ix:nonFraction> percentage points for 2020. Management has determined that earnings from its legal entity in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. </span></div><div style="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 </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2019 through 2021 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2017 through 2021 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. During 2022 the Company settled IRS audits for the tax years 2017 and 2018 which resulted in a net discrete tax </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">benefit. Additionally, the Company is under audit by the Commonwealth of Massachusetts for the amended returns filed for tax years 2017 and 2018. 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNTcx_dba386e3-b166-418b-90d9-888c8f292d86">229,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNTc2_846da5c3-2d91-4d9f-bec9-0bf89ca770ca">281,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNTg1_429a5d2b-8e54-4411-b18d-6f04c846de35">340,000</ix:nonFraction> in 2022, 2021, and 2020, 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%">Cash paid for income taxes totaled $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNjYw_3f8cd824-53b6-4168-80bc-958f997dfdb2">57,016,000</ix:nonFraction> in 2022, $<ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="0" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNjcy_52c7f6eb-d0f9-4944-a416-7591db35544a">49,435,000</ix:nonFraction> in 2021, and $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNjg4_d5e763d8-c201-4cff-8619-0bc66d72421a">33,695,000</ix:nonFraction> in 2020.</span></div><div style="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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyODc5_fa8c6db8-9610-488c-b2f6-5d4afec27351" 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, 2022 and December 31, 2021 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%">2022</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%">2021</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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzMtMS0xLTEtMTEyMTIz_207d62cc-34f1-454c-a52c-e6f657c14a5e">386,221</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzMtMy0xLTEtMTEyMTI1_54ce7852-5d27-43f2-ab33-34a7f955be8d">404,526</ix:nonFraction>&#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%">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:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzQtMS0xLTEtMTEyMTIz_2d9bc54a-e8cd-4630-9550-bcc181e41478">21,962</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzQtMy0xLTEtMTEyMTI1_0f13143f-6e2d-4ccb-955e-563afe0bf936">15,279</ix:nonFraction>&#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%">Federal and state tax credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzUtMS0xLTEtMTEyMTIz_1d388257-3ffd-46ad-b2fa-1229d8e366a4">8,284</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzUtMy0xLTEtMTEyMTI1_e6927dc9-2a67-462e-a2de-bd2d5297f343">11,051</ix:nonFraction>&#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%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzYtMS0xLTEtMTEyMTIz_930f7fbc-b7f3-4a9d-97b8-97c9d53e2ad3">8,117</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzYtMy0xLTEtMTEyMTI1_8e7e1eb3-c7de-48a3-a5cb-674306fe746f">7,426</ix:nonFraction>&#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%">Bonuses, commissions, and other 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzctMS0xLTEtMTEyMTIz_d2e6b93c-69eb-4ea3-bf18-8a797f59a49b">5,116</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzctMy0xLTEtMTEyMTI1_ab2c4c0c-d8b6-45af-83aa-cc9c2dd9ef38">7,263</ix:nonFraction>&#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%">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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzgtMS0xLTEtMTEyMTIz_c846a476-cff6-4d52-9022-43b248f5411d">2,119</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzgtMy0xLTEtMTEyMTI1_29b0539b-5381-44bf-a682-cac677f67368">5,395</ix:nonFraction>&#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 net operating 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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzktMS0xLTEtMTEyMTIz_61e01b36-d2dc-4848-97d7-e6feeecad080">53</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzktMy0xLTEtMTEyMTI1_43fb63f8-f3fc-4a0e-8769-c4105185d5aa">751</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEwLTEtMS0xLTExMjEyMw_6062d74a-a684-442e-b509-11c842ac6661">16,889</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><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEwLTMtMS0xLTExMjEyNQ_cdec3f24-604a-48c5-8d72-a879fc513601">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DeferredTaxAssetsOtherNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzExLTEtMS0xLTExMjEyMw_e7315897-e90d-4e8c-9a68-9a08e2387d83">15,102</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DeferredTaxAssetsOtherNoncurrent" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzExLTMtMS0xLTExMjEyNQ_2fbee988-349a-4dc6-a45a-de3144d93a34">9,023</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEyLTEtMS0xLTExMjEyMw_9672f02c-8830-4e6f-85ab-9cd9e0aa76f2">463,863</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEyLTMtMS0xLTExMjEyNQ_01b7e6f7-6ea5-4e07-b83e-c34de7fafc0e">460,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"></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%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEzLTEtMS0xLTExMjEyMw_7393d0e8-3d7e-43f2-a9cb-bc08f74c6b04">7,661</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEzLTMtMS0xLTExMjEyNQ_5ecbd857-5587-4b7a-ac06-c53befb870a9">8,188</ix:nonFraction>)</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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE0LTEtMS0xLTExMjEyMw_8e05d3f2-eed0-47ae-8c86-486fc1610c97">456,202</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE0LTMtMS0xLTExMjEyNQ_6b0e02bf-d6a6-4921-a59e-aa7b771f49fe">452,526</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></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%">(<ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE3LTEtMS0xLTExMjEyNw_01fb49b4-49fa-4cf8-a87a-0d710b9298ad">298,922</ix:nonFraction>)</span></td><td style="background-color:#ffffff;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%">(<ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE3LTMtMS0xLTExMjEzMQ_d55c8a88-f9b1-4b23-87d1-8cbccb39a483">327,725</ix:nonFraction>)</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="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 style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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 #000;padding:0 1pt"></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%">Net deferred taxes</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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="cgnx:DeferredIncomeTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzIyLTEtMS0xLTExMjEyOA_fd960d5d-312f-4738-9a63-81abaf3714de">157,280</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><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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="cgnx:DeferredIncomeTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzIyLTMtMS0xLTExMjEzMw_ce9d71b2-7056-4e8b-a6e7-cfe9a7d4934c">124,801</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></tr></table></div></ix:nonNumeric><div style="margin-bottom:8pt;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:6pt;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="i009bdd105744470f92f9842dbdccb264_I20191231" decimals="0" name="cgnx:DeferredTaxAssetsForeignTaxStructureChange" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzU0OTc1NTg2NjM0NQ_49b28038-8cce-4544-afe4-0d579a1ecf87">437,500,000</ix:nonFraction> in Ireland based on the fair value of the intellectual property that is being realized over 15 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="i009bdd105744470f92f9842dbdccb264_I20191231" decimals="0" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzU0OTc1NTg2NjM1OQ_23d15689-f2d1-4b61-a4d8-2b6e0c87fe1e">350,000,000</ix:nonFraction>, representing the GILTI minimum tax related to the fair value of the intellectual property. Management </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">64</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ic9b20d00fcd645b0959f1eaccdce982e"><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%">expects an immaterial impact on its current effective tax rate excluding discrete items in future years as a result of this change.</span></div><div style="margin-bottom:8pt;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:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At December 31, 2022, the Company recorded a deferred tax asset resulting from the capitalization of research and development expenditures. Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to currently 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.</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</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December 31, 2022, the Company had foreign net operating loss carryforwards of </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$<ix:nonFraction unitRef="usd" contextRef="i9129c87dd0e949fb969ceab36fc702ab_I20221231" decimals="0" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNTAz_e3dc4b70-a094-47ae-b11d-0aef01183cdb">180,000</ix:nonFraction></span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, state tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="i883c5601d8c74a2f9beffe621ca1879d_I20221231" decimals="0" name="cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNTQy_0451cb7e-1d59-4ffa-8fed-30f961f54771">6,050,000</ix:nonFraction>, and </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">foreign tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="i9129c87dd0e949fb969ceab36fc702ab_I20221231" decimals="0" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNTg3_be62c6a6-e000-40bb-a993-2bb992a697c2">2,234,000</ix:nonFraction>.</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 December 31, 2022, the Company had a valuation allowance for state research and development tax credits of $<ix:nonFraction unitRef="usd" contextRef="ic97ddb7e41b740f594ea9c53355b616f_I20221231" decimals="0" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNzAy_3793dbd4-9745-485d-8378-ff81207edc2f">6,869,000</ix:nonFraction> that was not considered to be realizable. Should these credits be utilized in a future period, the reserve associated with these credits would be reversed in the period when it is determined that the credits can be utilized to offset future state income tax liabilities. As of December 31, 2022, the Company had state research and development tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="i780814879ecc43d5993029565f7273f9_I20221231" decimals="0" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyMDc2_2dbea9b9-2b12-4d82-8485-54174acb0ec5">7,658,000</ix:nonFraction>, which will begin to expire for the 2032 tax return.</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%">While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax assets 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="id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:EarningsPerShareTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzYxOA_f0646584-8170-46e6-9714-8eb18d2ed007" continuedAt="i3c542ba63a58472fac9a7a2a15596666" escape="true">Weighted Average Shares</ix:nonNumeric></span></div><ix:continuation id="i3c542ba63a58472fac9a7a2a15596666"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzYyNA_50ede246-5e55-4bb6-8d1e-362f9df1b77f" 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><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%">2022</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%">2021</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%">2020</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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzItMS0xLTEtOTQ4NTM_48eee153-f448-4708-b66d-8dd7e645b09b">173,407</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><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%"><ix:nonFraction unitRef="shares" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzItMy0xLTEtOTQ4NTM_b6b60f44-a188-43d8-880f-ed09c9fd58aa">176,463</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><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%"><ix:nonFraction unitRef="shares" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzItNS0xLTEtOTQ4NTM_c434ff81-21ae-4dac-82ec-14b8b3511d1d">173,489</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></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzMtMS0xLTEtOTQ4NTM_3f9b1505-05c1-431f-98a1-2c6530843b33">1,462</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzMtMy0xLTEtOTQ4NTM_528ad8e7-b2b8-4c28-9d17-1877e03a3e0e">3,453</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzMtNS0xLTEtOTQ4NTM_8184c0d6-dfb1-43c2-a9f6-65d1d73caa15">3,103</ix:nonFraction>&#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%"><ix:nonFraction unitRef="shares" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzQtMS0xLTEtOTQ4NTM_0ba477f5-e9f1-4153-af21-9ec9ad7ab7cc">174,869</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><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%"><ix:nonFraction unitRef="shares" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzQtMy0xLTEtOTQ4NTM_39927dae-4164-4bd5-bca0-453009338dfe">179,916</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><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%"><ix:nonFraction unitRef="shares" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzQtNS0xLTEtOTQ4NTM_bf147328-813f-4743-8ffc-2f7f0c6d06ba">176,592</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></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%">Stock options to purchase <ix:nonFraction unitRef="shares" contextRef="ibc9067130ed84e849433c76631b763ed_D20220101-20221231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzEzMw_a4574700-05fe-4f45-9ff0-124fcbfe5fc6">4,715,104</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="ied180d64cab3406b839f2c4087ae0020_D20210101-20211231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzEzNw_a966e428-56df-4de2-9ba3-53654ff393c1">497,504</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="ie3c045c9713b435f8160b9ecf1299044_D20200101-20201231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzE0NQ_9a7edd77-850f-4eae-8fea-bb3a2b46c6d6">4,371,194</ix:nonFraction> shares of common stock, on a weighted-average basis, were outstanding in 2022, 2021, and 2020, 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="ia4f52443268d461da36b2c2dfbdecdb5_D20220101-20221231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzM5MA_696d4306-41e8-478f-a515-3953a3592a3e">26,079</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="ia9cbff9664cb4e56bc444e7febb27086_D20210101-20211231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzM5NA_b06df6aa-3011-453f-8ae7-c22ea1c72a13">605</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="i448d9902f4f248c2925c3342dcbdecf7_D20200101-20201231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzQwMg_406e5355-3a73-4fed-8b98-2dfb55d9ae50">3,826</ix:nonFraction> shares of common stock, on a weighted-average basis, were outstanding in 2022, 2021, and 2020, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. <ix:nonFraction unitRef="shares" contextRef="i422f78304faf4c55ad914f8bf630dca4_D20210101-20211231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzIxOTkwMjMyNTcwMDQ_472d12c2-f9b1-4b45-94f2-f7f14bb6f7a9"><ix:nonFraction unitRef="shares" contextRef="ib7ef6e080e01401eb22ca2d2352c1475_D20220101-20221231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzIxOTkwMjMyNTcwMDQ_5cfe94de-eed5-463f-ba6a-2bd8fda5f3ca"><ix:nonFraction unitRef="shares" contextRef="i71d263f5bcc8449590269860ead6af02_D20200101-20201231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzIxOTkwMjMyNTcwMDQ_eb3260b2-4156-4fad-9afb-901b2960e6be">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> PRSUs were excluded in the calculation of dilutive net income per share in 2022, 2021, and 2020 as PRSUs were not anti-dilutive on a weighted-average basis.</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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">65</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_187"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 20:&#160;<ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SegmentReportingDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEyOTU_b6ab640e-37c1-4f6e-90d1-28991eccd71d" continuedAt="ie74f9690a26f44e39f43b44812350932" escape="true">Segment and Geographic Information</ix:nonNumeric></span></div><ix:continuation id="ie74f9690a26f44e39f43b44812350932"><div style="margin-top:4pt;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzcz_93885b18-15a7-462a-99ac-b27ecb12010c">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 makes decisions to allocate resources and assesses performance at the corporate level, without regard to geography, legal entity, or end market. The Company offers a variety of machine vision products that have similar economic characteristics, have the same production processes, and are distributed by the same sales channels to the same types of customers.</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEzMDA_575fcb96-3ae6-4e10-adf5-c666df8fe56b" 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><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, 2022</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%"><ix:nonFraction unitRef="usd" contextRef="if33ecec5c8144a8c966621960cbb84e0_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItMS0xLTEtOTQ4NTM_dd3058c0-5308-4341-bd4e-8fe9475087a6">343,835</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><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%"><ix:nonFraction unitRef="usd" contextRef="i81c26265146a4e0cabd3a5ad1dc520f4_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItMy0xLTEtOTQ4NTM_28de6541-2849-4765-b695-d81b13698ced">234,643</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><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%"><ix:nonFraction unitRef="usd" contextRef="ifacc8a191ed34cc3956d7cb3c18bfb50_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItNS0xLTEtOTQ4NTM_fa20fb26-9e7e-4055-8031-bf3ffacb2698">227,447</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><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%"><ix:nonFraction unitRef="usd" contextRef="if9c291a1b7154cf0b03d68e4559fcfcb_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItNy0xLTEtOTQ4NTM_eb24bfcd-dc43-425f-8aff-22f986e4c75f">200,165</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><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%"><ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItOS0xLTEtOTQ4NTM_c95b54f7-87e0-467a-ad85-dfbb97a24916">1,006,090</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></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="i0cd7fb4c2acb452f822e36908fbcacff_I20221231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtMS0xLTEtOTQ4NTM_6921fb9a-d0aa-4820-a7a8-a84238a79bb2">66,928</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="iacacf3e6cbeb43e58c59d7fde4d9d9fb_I20221231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtMy0xLTEtOTQ4NTM_20593c47-64fa-40c9-b6b9-3bf676cb5be3">14,725</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="if01274f14e124fb7b344e0b335d49b2b_I20221231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtNS0xLTEtOTQ4NTM_0cf7ad7f-4f98-4faa-b86c-8ce53bee9b31">1,334</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="i780e30c3beb447ec962def693c363e3d_I20221231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtNy0xLTEtOTQ4NTM_8736fb3a-4ed5-42ce-bbd7-1d6675e22977">3,370</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><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%"><ix:nonFraction unitRef="usd" contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtOS0xLTEtOTQ4NTM_b3ccff3c-a0f6-4c62-8e30-5e44aed1ef0c">86,357</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></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, 2021</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%"><ix:nonFraction unitRef="usd" contextRef="i736bad4dad6944eca4b443a7133c8509_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtMS0xLTEtOTQ4NTM_59393e3c-5c34-4df4-9fbe-d5b0a256723e">393,690</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i81e4d0ae1cdb4710abb92bad9ac6186e_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtMy0xLTEtOTQ4NTM_5b598c8d-3e90-44dc-aaf6-0d93f64787f7">247,744</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="iad4f830115f54196885c8808f5f26002_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtNS0xLTEtOTQ4NTM_e7230191-f1d0-4fa2-937a-426345e59e26">200,135</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i7806244a633e43888a9095b38d705253_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtNy0xLTEtOTQ4NTM_05798718-e2a8-49bd-8cc7-f89ed163eef6">195,529</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtOS0xLTEtOTQ4NTM_7a7eedf9-f632-4dac-94b0-ff158b750897">1,037,098</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i760aa1a4efe3426894eb40a9729d6e10_I20211231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtMS0xLTEtOTQ4NTM_17e15f46-06f5-47db-ac03-f09672187c98">63,141</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="idb390063cc074bcbba90cb9e46f79d2f_I20211231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtMy0xLTEtOTQ4NTM_6b32856f-eb33-4534-9a42-b541df924156">16,982</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ib1b4629e786947a1a19577acecb99a73_I20211231" decimals="-3" name="us-gaap:NoncurrentAssets" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtNS0xLTEtOTQ4NTM_825a0b48-5b78-40a3-8328-d869adaa64c4">960</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i5f7d11e3ffad4c89badd6634c0960055_I20211231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtNy0xLTEtOTQ4NTM_22830294-0772-41c1-a14a-c9b09f6e01d1">3,705</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i0a741b855258479e8feae873870a21fe_I20211231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtOS0xLTEtOTQ4NTM_26b683de-7cca-4dc0-bd78-8e8a0c258013">84,788</ix:nonFraction>&#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, 2020</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%"><ix:nonFraction unitRef="usd" contextRef="ib6f636e14b00439c8df741688b096e76_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtMS0xLTEtOTQ4NTM_edbaa688-49fc-441c-bc7a-00c47b5ab803">280,205</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ie55ae60220f64f2a9333aff7cb5e7e79_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtMy0xLTEtOTQ4NTM_4ed76776-1a62-4d37-a063-65b1f174ca81">208,787</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ia5f10baf3e6e431791d90b042d2b7dbe_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtNS0xLTEtOTQ4NTM_e80ec5ae-6509-4225-b42c-647b90f7b8cd">168,287</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ib542cb5ce63642f7bb269e702188ded4_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtNy0xLTEtOTQ4NTM_277bbcc2-89d6-4708-9f91-4ffd9c966632">153,741</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtOS0xLTEtOTQ4NTM_8a72dd72-4e07-4c88-b7b5-6d87ebfa70a5">811,020</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="icc5e47429c0d413b88d2ad52922c8590_I20201231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktMS0xLTEtOTQ4NTM_3964f4de-4e4c-4b64-9cfb-5f09f3bc15d4">60,911</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ia44a70ef129441b9887bde869acad17d_I20201231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktMy0xLTEtOTQ4NTM_65ec364b-36b0-469a-b82d-6f9d104c976f">20,014</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="id1a27eb26028461e87485e9119c27fc0_I20201231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktNS0xLTEtOTQ4NTM_00dbef31-a9fb-4c23-88c6-4aaa41e9717a">1,278</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i433bf20d7ba54aa18508727462fdc63d_I20201231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktNy0xLTEtOTQ4NTM_af3db985-487f-4aa9-b436-0f0bca290cb7">4,764</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktOS0xLTEtOTQ4NTM_b06dc96d-03d7-4186-be0e-001a23004e1e">86,967</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div></ix:nonNumeric><div style="margin-top:4pt;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:4pt;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="ie8ba94c197bd41f0b3b33d4398e5935b_D20220101-20221231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzcwNg_34152515-054e-4549-b46b-b7d73fcb0609">11</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="i44288c37097d4942bf6c7e2b92fcd809_D20210101-20211231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzcxMw_1f780d98-5f5f-48a7-8464-1edb6f825143">17</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="iede40299fb3d4337914719e64abf17cf_D20200101-20201231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzU0OTc1NTgxNTI5OQ_10a43abd-17da-4faf-a327-ae0b86bcecd3">14</ix:nonFraction>% of total revenue in 2022, 2021, and 2020, respectively. Accounts receivable from this same customer accounted for <ix:nonFraction unitRef="number" contextRef="id092db34af2242f3b85505708b3165d5_D20210101-20211231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzkwOA_4f289cea-5e99-4578-ab04-8765bcc74567">15</ix:nonFraction>% of total accounts receivable as of December 31, 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2022.</span></div><div style="margin-top:4pt;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="i843c8ec204cd46e583da828b478cc847_D20220101-20221231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzU0OTc1NTgxNTQxMg_cf97fd8c-df4f-41b8-8048-707debe89efa">11</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="i22e0abbde5ec49e188c6fb263f21bf76_D20200101-20201231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEwMzM_755a185d-8aea-4ba6-a676-d4a54ed45897">13</ix:nonFraction>% of total revenue in 2022 and 2020. Revenue from this customer was not greater than 10% of total revenue in 2021. Accounts receivable from this same customer accounted for <ix:nonFraction unitRef="number" contextRef="id9b95c2f672d4c6bbd31953247fe1f51_D20210101-20211231" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEyMTM_9f0a0702-2b0e-4616-b991-1538a99dedfa">11</ix:nonFraction>% of total accounts receivable as of December 31, 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2022.</span></div></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_193"></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMzk_d5433d26-9110-44d4-a45a-6cccd9a8aab8" continuedAt="i00cbb93f82524104a004bbc362bfc20a" escape="true">Business Acquisitions</ix:nonNumeric></span></div><ix:continuation id="i00cbb93f82524104a004bbc362bfc20a" continuedAt="i5bed3f24b4144e94bfbc985ab31c10f5"><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">SAC Sirius Advanced Cybernetics GmbH</span></div><div style="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 December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#8217;s capabilities in defect detection, and accelerate its growth trajectory with electric vehicle battery manufacturers. The purchase price of the acquisition was not material to the Company's 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:400;line-height:120%;text-decoration:underline">Sualab Co., Ltd.</span></div><div style="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 16, 2019, the Company acquired all the outstanding shares of Sualab Co., Ltd. ("Sualab"), a provider of deep learning-based vision software for industrial image analysis based in Korea. The total consideration of $<ix:nonFraction unitRef="usd" contextRef="i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016" decimals="-3" name="us-gaap:BusinessCombinationConsiderationTransferred1" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzI3NQ_684c9999-754e-4187-8e3e-7047aa3d6f4f">193,638,000</ix:nonFraction> included cash payments of $<ix:nonFraction unitRef="usd" contextRef="i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzMwNA_2f92a58e-eddf-4246-acca-1e8a9bf2bc54">170,602,000</ix:nonFraction> upon closing. In the fourth quarter of 2020, the Company recorded a credit to goodwill in the amount of $<ix:nonFraction unitRef="usd" contextRef="iba4bd73731dc4f07bb9f0ef132d075a2_D20200928-20201231" decimals="-3" name="us-gaap:PaymentsForProceedsFromPreviousAcquisition" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzQxMQ_7bd56844-0cf1-4158-9dc7-16ca62dfd874">1,004,000</ix:nonFraction> representing a purchase price adjustment. The remaining consideration consists of deferred payments of $<ix:nonFraction unitRef="usd" contextRef="i4b5f6ecdd9df4630b3d91537e2ac5fc6_I20191016" decimals="-3" name="us-gaap:BusinessCombinationContingentConsiderationLiability" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzUxNw_6fafc681-46c9-4afa-8f70-78176db4d08d">24,040,000</ix:nonFraction> that may become payable in October 2023, contingent upon the continued employment of key talent, and is being recorded as compensation expense over the four-year period.</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="i5bed3f24b4144e94bfbc985ab31c10f5">Deteriorating global economic conditions from the COVID-19 pandemic triggered a review of long-lived assets for potential impairment in the second quarter of 2020. This review resulted in intangible asset impairment charges totaling $<ix:nonFraction unitRef="usd" contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzkyMw_cc56f962-105d-4f05-bbef-ca0d38fe2ffb">19,571,000</ix:nonFraction> in the second quarter of 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $<ix:nonFraction unitRef="usd" contextRef="ie67d26e226f842f78def61df0513f4d1_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMDU_2490da79-d71d-4595-bbe0-3c7ff3ec0855">10,070,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="idada75d878da464ea026b4a203cbcb10_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMDk_49247849-fe56-442f-a828-2c562e59a4ef">5,900,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="if6cae797bb3e4fd2861d574e8b857954_D20200330-20200628" decimals="-3" name="us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMTc_74837347-fd88-4d29-89a3-9b0b6f25ceb1">3,382,000</ix:nonFraction>, respectively.</ix:continuation> </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">66</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_2073"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 22: <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="cgnx:CatastropheTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV8xMjY0NDM4Mzc0NTAxMA_a33714ff-1372-4c82-9a1a-514e6191490d" continuedAt="id0ac755d6c574ba8b0e83cc1e2d88f0f" escape="true">Loss from Fire</ix:nonNumeric></span></div><ix:continuation id="id0ac755d6c574ba8b0e83cc1e2d88f0f"><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 June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to assess the damage, resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. </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 result of the fire, the Company recorded $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="cgnx:GrossLossFromCatastrophes" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQwNTY_89633ba7-43b5-49f3-be58-8afcee165c64">48,339,000</ix:nonFraction> in gross losses in 2022, related to $<ix:nonFraction unitRef="usd" contextRef="ic5bb8208f5754b4ebf3c9e59746629a5_D20220607-20220607" decimals="-3" name="us-gaap:InventoryWriteDown" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQwOTE_322811a0-ccbf-41ea-aeb6-d988c4aea7c4">37,663,000</ix:nonFraction> of primarily Cognex-owned inventory that was destroyed or deemed to have a net realizable value of zero, $<ix:nonFraction unitRef="usd" contextRef="ic5bb8208f5754b4ebf3c9e59746629a5_D20220607-20220607" decimals="-3" name="us-gaap:AssetImpairmentCharges" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQxMDM_1daecbe0-788a-40d1-8f73-c420cbff939a">8,709,000</ix:nonFraction> of primarily prepayments related to Cognex-designated components that were owned by the contract manufacturer and other assets, and $<ix:nonFraction unitRef="usd" contextRef="i94b0adcbc2804c19bee8fa928a2fd7bd_D20220101-20221002" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSoldOverhead" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQxMTQ_8f07681e-2821-4802-8112-5308ef4164c5">1,967,000</ix:nonFraction> related to deleveraging of costs related to our distribution centers.</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%">Gross losses have been reduced by insurance proceeds received from the Company&#8217;s insurance carrier of $<ix:nonFraction unitRef="usd" contextRef="ifeda0162266f40cd80c621dc7f7da27c_D20221003-20221231" decimals="-3" name="us-gaap:InsuranceRecoveries" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzM5MjU_0e3fd732-8bd1-48ee-b68d-313ef376183f">27,560,000</ix:nonFraction> in the fourth quarter of 2022. Gross losses net of insurance recovery of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:LossFromCatastrophes" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzM5NTI_cfd455a0-2fd3-46e8-9603-3f472694d803">20,779,000</ix:nonFraction> are presented in the caption &#8220;Loss from fire&#8221; on the Consolidated Statements of Operations.</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 of December 31, 2022 and through the date of financial statement issuance, management cannot yet estimate additional recoveries that could be available from the contract manufacturer. Any future, additional recoveries in excess of recognized losses will be treated as gain contingencies and will be recognized when the gain is realized or realizable. There can be no assurance, however, that additional insurance coverage and/or recoveries from the contract manufacturer will be available to cover the net loss from the fire.</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%">After considering all the relevant events and circumstances resulting from the fire, management does not believe that the carrying value of the Company exceeds its fair value, or that the carrying amount of the Company&#8217;s intangible assets may not be recoverable. As such, no goodwill or intangible asset impairment charges were recorded during 2022 as a result of the fire.</span></div></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_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 23: <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzI2MjM_d0bd9764-2e5f-43c8-aeac-a882a4a864ba" continuedAt="if8a8aff2d46e4feda1f46bd4e77e14b4" escape="true">Restructuring Charges</ix:nonNumeric></span></div><ix:continuation id="if8a8aff2d46e4feda1f46bd4e77e14b4" continuedAt="ia801a8fc4b7044bb8c932167b6b8acf6"><div style="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">December 2022 Restructuring</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%">In December 2022, following its acquisition of SAC (refer to Note 21), the Company performed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities included a workforce reduction of <ix:nonFraction unitRef="employees" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="0" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzEyNjQ0MzgzNzI2MTQ4_f813d496-873f-4d88-9a4f-edde6a3d479b">18</ix:nonFraction> employees and the termination of certain operating lease contracts, and resulted in charges of $<ix:nonFraction unitRef="usd" contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzIxOTkwMjMyNjExOTY_f09e758b-79fb-4126-aa82-1abc810b5b4b">1,657,000</ix:nonFraction> in 2022. These charges are included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations. As of December 31, 2022, the majority of these restructuring actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring plan.</span></div><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzEyNjQ0MzgzNzI2MTQ5_d589da53-162d-4b77-b12c-fba2768c7a0c" 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%">The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):</span></div><div><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><td style="width:72.876%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></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:24.194%"></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="display:none"></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%">Amount</span></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%">One-time termination benefits</span></td><td colspan="3" style="display:none"></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%"><ix:nonFraction unitRef="usd" contextRef="ie32ebedb57974f7ea1a721d7abd8efff_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTo2YmFkZjcwZTEzYmQ0MjBhYWNhNzg4NGI3MDUwYjYyZS90YWJsZXJhbmdlOjZiYWRmNzBlMTNiZDQyMGFhY2E3ODg0YjcwNTBiNjJlXzEtMy0xLTEtMTA1NjM3_5322afe0-b99f-470e-bcd9-24ba86e2174c">1,584</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><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%">Contract termination costs</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3a766c86adf146bb876cab5893f555a7_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTo2YmFkZjcwZTEzYmQ0MjBhYWNhNzg4NGI3MDUwYjYyZS90YWJsZXJhbmdlOjZiYWRmNzBlMTNiZDQyMGFhY2E3ODg0YjcwNTBiNjJlXzItMy0xLTEtMTA1NjM5_9023c1b4-550a-402f-9df4-b82b7ac6d1ac">73</ix:nonFraction>&#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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="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 colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTo2YmFkZjcwZTEzYmQ0MjBhYWNhNzg4NGI3MDUwYjYyZS90YWJsZXJhbmdlOjZiYWRmNzBlMTNiZDQyMGFhY2E3ODg0YjcwNTBiNjJlXzQtMy0xLTEtMTA1NjQx_12386842-7916-4a7d-8c24-eab1e9d22bff">1,657</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><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></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:'Times New Roman',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:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ia801a8fc4b7044bb8c932167b6b8acf6" continuedAt="i147fc49240a8450ca06ed1ebc5b4fcf3"><ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzEyNjQ0MzgzNzI2MTUw_7e27f29e-661b-4a7d-814c-3160ae4d0f7f" continuedAt="i5f69c70734724b8e81345b038a0ae3c0" escape="true"><div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#8217;s restructuring reserve related to the December 2022 Restructuring, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (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:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.104%"></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.081%"></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 colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="width:1.0%"></td><td style="width:14.546%"></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%">One-time Termination Benefits</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%">Contract Termination Costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></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%">Total</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%">Balance as of December 31, 2021</span></td><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:10pt;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:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ie65ef75b834449cb92d44e451af3b68f_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzEtMS0xLTEtMTA1NjQz_bcd3e3ce-0236-4f2c-be99-879e42314b33">&#8212;</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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:10pt;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:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="icfc3fa7a278e49c2bb0506f47b41decd_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzEtMy0xLTEtMTA1NjU1_50729373-b118-4715-a377-ecb67f4d8411">&#8212;</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><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:10pt;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:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i3267ddf6eeb345028e6c64305107f057_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzEtNy0xLTEtMTA1NjY1_1b9e2716-7898-4d18-80f1-8def735790e8">&#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;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%">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:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzItMS0xLTEtMTA1Njc1_ef687738-c8fb-4095-bb41-d760346602ac">1,584</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzItMy0xLTEtMTA1Njc4_b11888cb-5627-480d-8a85-56d782cf7040">73</ix:nonFraction>&#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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzItNy0xLTEtMTA1Njgw_6eccaf49-aa2b-40d6-a8a4-b8d0296dab17">1,657</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></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%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzMtMS0xLTEtMTA1NjQ3_dc702940-7311-4bea-85f9-497bf930e54d">646</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzMtMy0xLTEtMTA1NjU3_26e23fe9-1238-4afa-a044-92253e93a304">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding: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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzMtNy0xLTEtMTA1NjY5_dc07a4c0-f181-427f-baf5-7b8f0b9bd23b">646</ix:nonFraction>)</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></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="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%">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="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzYtMS0xLTEtMTA1NjUw_0106c2ce-dd02-4911-9cdf-66502faa5184">26</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzYtMy0xLTEtMTA1NjYw_6dc6bbc2-99b8-4316-828d-0b48af185855">2</ix:nonFraction>&#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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzYtNy0xLTEtMTA1Njcx_9f2d3f73-2b1a-4242-ab15-6f2d105c8967">28</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></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, 2022</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="i80e9ad4ee7a64dd1baa78b63dba84935_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzctMS0xLTEtMTA1NjUz_45863a6c-bce3-45d5-964b-ebeabfbecd01">964</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><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;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%"><ix:nonFraction unitRef="usd" contextRef="id787c23f289843789074e08d2171a18f_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzctMy0xLTEtMTA1NjYy_7f0359ab-df98-4047-847d-e346d5e41068">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 #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;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></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="i6a523bb16ddb45efaf8e76c8b0927ea1_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzctNy0xLTEtMTA1Njcz_8f32cc1e-c157-43d7-92fa-5c0eee1494da">1,039</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></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></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">May 2020 Restructuring</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 May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately <ix:nonFraction unitRef="number" contextRef="i8e050d2b1282473eb9707ece03c779f0_I20200526" decimals="2" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" scale="-2" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzMyMg_013bdda1-2515-44b5-a61d-739a026e1894">8</ix:nonFraction>% and office closures. The Company recorded restructuring charges from these actions totaling $<ix:nonFraction unitRef="usd" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzQxNw_681d52df-043f-4a33-b1ac-9712d550f7d6">15,924,000</ix:nonFraction> in 2020 which are included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations. As of December 31, 2020, the majority of these actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring plan. There were no restructuring charges recognized in 2022 or 2021 related to this restructuring plan.</span></div><div style="text-align:justify"><span><br/></span></div><ix:nonNumeric contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231" name="us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzI2MjQ_57c2d12e-7e1b-4f11-bf60-e48111a12b24" escape="true"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the restructuring charges for the year ended December 31, 2020 (in thousands):</span></div><div><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><td style="width:72.876%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></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:24.194%"></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="display:none"></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%">Amount</span></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%">One-time termination benefits</span></td><td colspan="3" style="display:none"></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%"><ix:nonFraction unitRef="usd" contextRef="i600b8f977640419eb1675e17636d9ca8_D20200101-20201231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzEtMy0xLTEtOTQ4NTM_08138d57-2bbd-408e-b715-67f35d8f5094">10,159</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><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%">Contract termination costs</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i42ff3e178de64a8195007ed9f4abd8fe_D20200101-20201231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzItMy0xLTEtOTQ4NTM_f66af2b9-a21e-4516-9b94-f8e153b4f9e3">5,207</ix:nonFraction>&#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 associated costs</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i4e530fea3f1c4da69ebde9dab9a343ad_D20200101-20201231" decimals="-3" name="us-gaap:RestructuringCharges" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzMtMy0xLTEtOTQ4NTM_66be8911-ef35-4c1d-989b-505c9c2ef95a">558</ix:nonFraction>&#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="display:none"></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: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="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzQtMy0xLTEtOTQ4NTM_b394b666-6c01-4958-8b61-423da93bc16b">15,924</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><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></table></div></ix:nonNumeric><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One-time termination benefits included severance, health insurance, and outplacement services for <ix:nonFraction unitRef="employees" contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231" decimals="0" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzk3MA_654c56f4-6b00-460a-ad2e-e7e904bf8925">181</ix:nonFraction> employees who were either terminated during the second quarter of 2020, or were notified during the second quarter of 2020 that they would be terminated at a future date. For employees not required to render service beyond a minimum retention period, the one-time termination benefits were recognized in the second quarter of 2020. Otherwise, these benefits, including retention bonuses for selected employees, were recognized over the remaining service period which was completed by December 31, 2020.</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%">Contract termination costs included operating lease asset impairment charges for eleven offices closed prior to the end of the contractual lease term. These costs also included the write-off of leasehold improvements and other equipment related to these abandoned offices that had no alternative use, as well as other associated operating costs, such as utilities, that the Company is obligated to pay for the remainder of the lease term. These contract termination costs were primarily recognized in the second quarter of 2020 when the Company ceased using the property for economic benefit. </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%">Other associated costs primarily included legal fees related to the employee termination actions, which were recognized when the services were performed. </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">68</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="i147fc49240a8450ca06ed1ebc5b4fcf3"><ix:continuation id="i5f69c70734724b8e81345b038a0ae3c0"><div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#8217;s restructuring reserve related to the May 2020 Restructuring, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (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:100.000%"><tr><td style="width:1.0%"></td><td style="width:38.227%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.104%"></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.081%"></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:12.788%"></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:14.548%"></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%">One-time Termination Benefits</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%">Contract Termination Costs</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%">Other Associated Costs</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%">Total</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%">Balance as of December 31, 2020</span></td><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:10pt;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:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ia1e2784fdde844afa0ab2507951775c2_I20201231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtMS0xLTEtOTQ4NTM_2d8832a3-11ce-4805-9cdd-bb2ca73ade66">1,624</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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:10pt;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:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="if0c845f3557243618541b6ef4cdd2295_I20201231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtMy0xLTEtOTQ4NTM_17ba9e9c-628b-4880-bc3c-a141a9aaf272">750</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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:10pt;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:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="ibb076eea4f334a8bbfc7c968502e806b_I20201231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtNS0xLTEtOTQ4NTM_bc63127e-a5b3-40c6-a9b5-cfb3d6048e3a">15</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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><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:10pt;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:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i330fd257bfc64e1b88e79d165f517fe8_I20201231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtNy0xLTEtOTQ4NTM_7f91e54e-71be-4e60-9d54-0f596731a423">2,389</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></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="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 payments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i486e59888ae249dd8626fcf8f9b0160b_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsForRestructuring" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtMS0xLTEtOTQ4NTM_3f3db0f0-9312-4f86-bbc4-f9d1438c1bd2">1,142</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="ibf61588c7728470eacd9c2a10751c46d_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtMy0xLTEtOTQ4NTM_c7524a86-2060-4809-8e0a-4e64ff657848">227</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="i5d52417344c14c29bbccd5d541a4024e_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtNS0xLTEtOTQ4NTM_bf4a8678-4d6c-4a9a-baef-4f92142471e6">15</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%">(<ix:nonFraction unitRef="usd" contextRef="ie9018d36cd394bc280df55a11358c66e_D20210101-20211231" decimals="-3" name="us-gaap:PaymentsForRestructuring" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtNy0xLTEtOTQ4NTM_cccf2ad0-1c43-49cb-960a-bbbc196736f4">1,384</ix:nonFraction>)</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></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="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 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="i486e59888ae249dd8626fcf8f9b0160b_D20210101-20211231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtMS0xLTEtOTQ4NTM_9f6ba24b-af50-4305-8df5-f7e8bb4063ed">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="ibf61588c7728470eacd9c2a10751c46d_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtMy0xLTEtOTQ4NTM_c37c1475-9f19-4c7e-9769-bd2d0052b23f">7</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i5d52417344c14c29bbccd5d541a4024e_D20210101-20211231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtNS0xLTEtOTQ4NTM_e5c3df6a-ff0c-4bfc-99cd-d0992d01b5f0">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="ie9018d36cd394bc280df55a11358c66e_D20210101-20211231" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtNy0xLTEtOTQ4NTM_e702ceb9-eaa4-4588-b204-39c02d5e2d91">7</ix:nonFraction>)</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, 2021</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="i5e7e9c89e41d4792973df7578c9e9544_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctMS0xLTEtOTQ4NTM_99ba9ebf-3fc5-4b02-9156-46bae6210832">482</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><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i5f53ad11b6ee4531bc73dec57db7714e_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctMy0xLTEtOTQ4NTM_5c0982b7-35f1-4e30-aae1-0ad7571256fc">516</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><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i12348e9eef654011a546d0ae93a4d600_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctNS0xLTEtOTQ4NTM_9259d3ff-1ef9-43b7-98de-90d714974195">&#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;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:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i96a61c89495a490db9c8b066f5466ae4_I20211231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctNy0xLTEtOTQ4NTM_5ad205cd-b56a-433b-bc53-1eb6d434c1fd">998</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></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="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%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i703a3c7e139a4f648b75f2cca1ababa7_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktMS0xLTEtOTQ4NTM_094ba5de-0cb4-48db-8e0c-6e5bc9e86cad">482</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="i2a9a0a4058bb4a49b5c5f5e117d80933_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktMy0xLTEtOTQ4NTM_37e115ba-8320-468c-9b05-7d15f9f694ea">265</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="i1c136c9b24e2498a93308cad0ee1c3ae_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktNS0xLTEtOTQ4NTM_e680be81-2201-44c9-b25e-d3bba71a785b">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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="iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktNy0xLTEtOTQ4NTM_83642af5-bdd1-463d-8b3d-7ccc07727e72">747</ix:nonFraction>)</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></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="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%">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="i703a3c7e139a4f648b75f2cca1ababa7_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTEtMS0xLTk0ODUz_bf10b9a7-af2b-4905-b27c-31b471311fec">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i2a9a0a4058bb4a49b5c5f5e117d80933_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTMtMS0xLTk0ODUz_ccb8f3ec-56fa-4f9e-a3fc-804c06ee91be">6</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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%"><ix:nonFraction unitRef="usd" contextRef="i1c136c9b24e2498a93308cad0ee1c3ae_D20220101-20221231" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTUtMS0xLTk0ODUz_b81e66ac-1736-45a8-a796-920a61724ac6">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231" decimals="-3" sign="-" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTctMS0xLTk0ODUz_5e745172-21ea-453a-b59a-3b405d9d9ceb">6</ix:nonFraction>)</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, 2022</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="i3a7e6e13bdd3458bb1087c48776d8cac_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTEtMS0xLTk0ODUz_c43e8b18-6d71-4fba-b9a8-86ac06eaa40c">&#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;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;border-bottom:3pt double #000;border-top:1pt solid #000;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%"><ix:nonFraction unitRef="usd" contextRef="i49730dd44e964a35b86a2b1cd195f392_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTMtMS0xLTk0ODUz_126ed8c3-f43b-4824-ba50-a5fb97b23d21">245</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><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;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%"><ix:nonFraction unitRef="usd" contextRef="ib05d86b5f147419d8cbeecde9b3a99dd_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTUtMS0xLTk0ODUz_b13a6473-f025-4337-8f4c-9c72b164dd4b">&#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;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;border-bottom:3pt double #000;border-top:1pt solid #000;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%"><ix:nonFraction unitRef="usd" contextRef="i1e7d9d33dca5421bbb53ae9c4825ee6d_I20221231" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTctMS0xLTk0ODUz_8b5ee9c9-9c65-4bad-85d7-b2ecb55bf909">245</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></tr></table></div></ix:continuation></ix:continuation><div id="id8333d090d7e467c8f0fde3d2520d2ed_202"></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 24: <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="us-gaap:SubsequentEventsTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDIvZnJhZzozOGNmZGI0YmI2MTU0MjU4YjM1YmQ2NTlkMmUwNTliOS90ZXh0cmVnaW9uOjM4Y2ZkYjRiYjYxNTQyNThiMzViZDY1OWQyZTA1OWI5XzIyMw_4f650496-521e-42ad-8461-2f51c212b13c" continuedAt="ia10ee9d685b9450d875a8552f6c11b81" escape="true">Subsequent Events</ix:nonNumeric></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%"><ix:continuation id="ia10ee9d685b9450d875a8552f6c11b81">On February 16, 2023, the Company's Board of Directors declared a cash dividend of $<ix:nonFraction unitRef="usdPerShare" contextRef="i02cdf9af3e804fda94a3d434209cdf3b_I20230216" decimals="INF" name="us-gaap:DividendsPayableAmountPerShare" scale="0" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDIvZnJhZzozOGNmZGI0YmI2MTU0MjU4YjM1YmQ2NTlkMmUwNTliOS90ZXh0cmVnaW9uOjM4Y2ZkYjRiYjYxNTQyNThiMzViZDY1OWQyZTA1OWI5XzExNQ_094ba6b4-215a-4654-8870-262b9158855c">0.070</ix:nonFraction> per share. The dividend is payable March 17, 2023 to all shareholders of record as of the close of business on March 3, 2023.</ix:continuation></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">69</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_208"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90ZXh0cmVnaW9uOjdjMzgzYWU2ZTJlNTRmNDI5NDE4ODhiYTFhMGI0YmFiXzE0MQ_73826e07-bd22-4373-8a3c-6aa5e2ddbb52" continuedAt="i2f783284686a4d63a12088f1a25f5a26" escape="true">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS</ix:nonNumeric></span></div><ix:continuation id="i2f783284686a4d63a12088f1a25f5a26"><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%">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%"><ix:nonFraction unitRef="usd" contextRef="i079eedc5611e42aa9f7b8b809207e9b9_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtMi0xLTEtOTQ4NTM_8e468231-3927-4edf-9ec1-7efaaa6f6f80">776</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtNC0xLTEtOTQ4NTM_5534cb62-76f3-4b34-9f23-2cc61e910a43">191</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%">(<ix:nonFraction unitRef="usd" contextRef="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtOC0xLTEtOTQ4NTM_2363f5fa-2d28-4ce6-a4ff-0e9b38c0a08f">237</ix:nonFraction>)</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtMTAtMS0xLTk0ODUz_46840164-0d46-4ed7-9d80-1f0f425107a3">&#8212;</ix:nonFraction>&#160;</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="ic0646d282864416d93da63cfb616a046_I20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtMTItMS0xLTk0ODUz_5becc682-5f94-492f-b77e-dce4f5c410ca">730</ix:nonFraction>&#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%">2021</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%"><ix:nonFraction unitRef="usd" contextRef="i1ca0ca0692cf4818872b66cf958695b4_I20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtMi0xLTEtOTQ4NTM_01063722-d0ab-4589-9301-ec8cf4511d97">831</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtNC0xLTEtOTQ4NTM_942e313f-5135-41b1-95eb-542e41f607cc">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtOC0xLTEtOTQ4NTM_00f64444-0689-4a60-bb91-0b32af10f721">55</ix:nonFraction>)</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtMTAtMS0xLTk0ODUz_47330e81-41f5-410d-ae2b-3c516c6aaf64">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i079eedc5611e42aa9f7b8b809207e9b9_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtMTItMS0xLTk0ODUz_b3fcf81b-523a-440e-b91a-5e4da49dae26">776</ix:nonFraction>&#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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="if4d1e32d070c424fb97dbbaf7592a5df_I20191231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtMi0xLTEtOTQ4NTM_e84a5f74-2f22-4831-a804-0fa1bdce07e3">530</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtNC0xLTEtOTQ4NTM_ef171792-649a-43f6-b36d-d91cfdd50e8c">600</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%">(<ix:nonFraction unitRef="usd" contextRef="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtOC0xLTEtOTQ4NTM_db88e233-c1a4-4087-8fce-6cb6679e1b3c">300</ix:nonFraction>)</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtMTAtMS0xLTk0ODUz_b26b9bf1-8eff-4793-999f-2b2e17945166">1</ix:nonFraction>&#160;</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="i1ca0ca0692cf4818872b66cf958695b4_I20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtMTItMS0xLTk0ODUz_cc0ff9ac-c306-4948-8678-56a14c3aed27">831</ix:nonFraction>&#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%">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%"><ix:nonFraction unitRef="usd" contextRef="i17153e64a544469680440c49ceeca9d3_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtMi0xLTEtOTQ4NTM_eebbc1df-8f92-4dfc-9c2d-534363536e25">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtNC0xLTEtOTQ4NTM_aed93420-ca60-4085-a5e9-d6a7d51cf056">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtNi0xLTEtOTQ4NTM_56d3d7be-9ae3-43d3-bb2d-b9afa64a1f48">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtOC0xLTEtOTQ4NTM_13f86298-f584-4517-83ca-2f1e68771a62">&#8212;</ix:nonFraction>&#160;</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtMTAtMS0xLTk0ODUz_caa2558b-86b1-4f83-9722-1cb38b98d743">&#8212;</ix:nonFraction>&#160;</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="ib6c2a40fe85c4fafa0ee0ac6d1deade0_I20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtMTItMS0xLTk0ODUz_e633aa8b-2092-46ab-8fe0-9e414dbf8d82">1,518</ix:nonFraction>&#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%">2021</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%"><ix:nonFraction unitRef="usd" contextRef="i24861a7c8fcf4ee3aed146ba4412408b_I20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktMi0xLTEtOTQ4NTM_d8088366-245c-45d1-9fcf-942e09848277">1,291</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktNC0xLTEtOTQ4NTM_29928c96-c422-4644-abac-c609693a57c4">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktNi0xLTEtMTA0OTIz_7a57c6da-39b8-4512-8de0-efcc174b41d7">227</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktOC0xLTEtOTQ4NTM_65879dd3-ab01-4a84-ba56-5f69df2be186">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktMTAtMS0xLTk0ODUz_adb61d5d-09b5-47fb-9987-ef52e97d93e6">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i17153e64a544469680440c49ceeca9d3_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktMTItMS0xLTk0ODUz_a2c89f7c-0d2d-4a76-a434-dc9ece4b4732">1,518</ix:nonFraction>&#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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="i96652bcfac584bada7a427c102168851_I20191231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTItMS0xLTk0ODUz_7b2f96d3-68ad-4027-a847-d350462602e0">1,291</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTQtMS0xLTk0ODUz_1d5dfca6-907e-4dca-8da3-ceb022c45b43">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTYtMS0xLTEwNDkyNw_4e35ca7b-52a3-4989-9f03-3176b48bc9ed">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTgtMS0xLTk0ODUz_a1cc8c54-1405-44c2-a938-ab737a59a8c3">&#8212;</ix:nonFraction>&#160;</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTEwLTEtMS05NDg1Mw_4aee5571-723d-4fdf-a11e-54bee5c6d80b">&#8212;</ix:nonFraction>&#160;</span></td><td 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%"><ix:nonFraction unitRef="usd" contextRef="i24861a7c8fcf4ee3aed146ba4412408b_I20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTEyLTEtMS05NDg1Mw_f97ca008-d332-4096-b9f8-bcb14ac1ebee">1,291</ix:nonFraction>&#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%">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%"><ix:nonFraction unitRef="usd" contextRef="ifc93b5f0ff4a4f40829b8e4e132d3ca2_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTItMS0xLTk0ODUz_9472385b-3484-4bd5-b492-95c2fbddef5b">8,188</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTQtMS0xLTk0ODUz_eac56b98-784f-4840-b482-fa4b003c167e">2,234</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTYtMS0xLTEwNDkzNw_a7421d5c-512b-4aa4-851c-e30d7d571d5e">3,889</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%">(<ix:nonFraction unitRef="usd" contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTgtMS0xLTk0ODUz_cf6a1712-b57d-4f14-a14c-9cb02cdc3963">6,650</ix:nonFraction>)</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTEwLTEtMS05NDg1Mw_8a83c0d2-c5f3-481e-ad43-efedf3ffc74d">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i32fb706d4a674c1fbcc3266ad01e02de_I20221231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTEyLTEtMS05NDg1Mw_a86722f1-d609-43ba-825a-d3bcce228096">7,661</ix:nonFraction>&#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%">2021</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%"><ix:nonFraction unitRef="usd" contextRef="ib565d1145cb04bb3afb6b2a92a881195_I20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTItMS0xLTk0ODUz_ea0a3b19-e258-479e-8c7e-8f3e9f073db1">8,568</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTQtMS0xLTk0ODUz_d7eaff7e-b21a-44b0-8ab4-a0798b8004ef">1,420</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTYtMS0xLTEwNDkzNQ_bd56db86-b983-4735-9d0d-2984c4d59abc">&#8212;</ix:nonFraction>&#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%">(<ix:nonFraction unitRef="usd" contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTgtMS0xLTk0ODUz_c91fc41e-81a6-4dce-9f04-a9b5c9f6f164">1,800</ix:nonFraction>)</span></td><td style="background-color:#cceeff;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%"><ix:nonFraction unitRef="usd" contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTEwLTEtMS05NDg1Mw_f5189575-51f2-4372-9eec-05b45ff34fda">&#8212;</ix:nonFraction>&#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%"><ix:nonFraction unitRef="usd" contextRef="ifc93b5f0ff4a4f40829b8e4e132d3ca2_I20211231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTEyLTEtMS05NDg1Mw_568de7fe-3bfa-4865-96dc-ee6dedcb558c">8,188</ix:nonFraction>&#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%">2020</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%"><ix:nonFraction unitRef="usd" contextRef="i62200600a0034404accdb4a8fb7ec6dc_I20191231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTItMS0xLTk0ODUz_494862e2-9ad9-4852-bec2-660b4c0d7f27">7,312</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTQtMS0xLTk0ODUz_1c500fa8-0bfa-447c-be5c-395544b158a1">1,256</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTYtMS0xLTEwNDkzMA_e06e1148-9d19-4abd-96ee-ea41a90be718">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTgtMS0xLTk0ODUz_ac4c8227-7ac8-4827-8680-f16b4f1adbb0">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTEwLTEtMS05NDg1Mw_291dfcd2-3570-4b7b-b2f4-d2b7b4b80f8e">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;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%"><ix:nonFraction unitRef="usd" contextRef="ib565d1145cb04bb3afb6b2a92a881195_I20201231" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTEyLTEtMS05NDg1Mw_05950b45-a4a1-466c-a2a9-5f3a738c78e1">8,568</ix:nonFraction>&#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></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">70</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_211"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 2022 or 2021.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_214"></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 Securities Exchange Act of 1934, 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:9pt"><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, 2022.</span></div><div style="margin-top:9pt"><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, 2022 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:9pt"><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, 2022 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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">71</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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                                                                                                                         Cognex Corporation</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:108%">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, 2022, 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, 2022, 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, 2022, and our report dated February 16, 2023, expressed an unqualified opinion on those financial statements.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:108%">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. 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="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:108%">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="text-align:justify"><span><br/></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%">/s/ <ix:nonNumeric contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:AuditorName" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMTQvZnJhZzphYzk5OGU2ZmU3YTk0MmJhYTFlYzMyYTg5NjJlNmEwOC90ZXh0cmVnaW9uOmFjOTk4ZTZmZTdhOTQyYmFhMWVjMzJhODk2MmU2YTA4XzY2Mjk_1fa14408-2f42-4aa1-9057-573e64d4dfa9">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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231" name="dei:AuditorLocation" id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMTQvZnJhZzphYzk5OGU2ZmU3YTk0MmJhYTFlYzMyYTg5NjJlNmEwOC90ZXh0cmVnaW9uOmFjOTk4ZTZmZTdhOTQyYmFhMWVjMzJhODk2MmU2YTA4XzY2Mjg_2c077f33-0d55-4d8e-9d22-58bb5cd9cd93">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;16, 2023 </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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">72</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_217"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_220"></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="id8333d090d7e467c8f0fde3d2520d2ed_223"></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="id8333d090d7e467c8f0fde3d2520d2ed_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&#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 May 3, 2023 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:'Times New Roman',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%">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 id="id8333d090d7e467c8f0fde3d2520d2ed_229"></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 May&#160;3, 2023 and is incorporated herein by reference.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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;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 May&#160;3, 2023 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 following table provides information as of December&#160;31, 2022 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><td style="width:27.639%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.694%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.979%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:21.187%"></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:21.187%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:1.981%"></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: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><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><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"></td></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><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><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></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 (4)</span></td><td colspan="2" style="background-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%">9,768,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: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%">44.69&#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:8pt;font-weight:400;line-height:100%">13,746,000&#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: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 (4)</span></td><td colspan="2" style="background-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><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:8pt;font-weight:400;line-height:100%">(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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-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><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><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:8pt;font-weight:700;line-height:100%">9,768,759</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><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: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%">44.69</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><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:8pt;font-weight:700;line-height:100%">13,746,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><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"></td></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 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 2007 Stock Option and Incentive Plan and 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%">(3)</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 the exercise of outstanding options granted prior to shareholder approval under 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%">(4)</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 provides for the granting of nonqualified stock options and incentive stock options to any employee who is actively employed by the Company and is not an officer or director of the Company. The maximum number of shares of common stock available for grant under this plan is 38,440,000 shares. All option grants must have an exercise price per share that is no less than the fair market value per share of the Company&#8217;s common stock on the grant date and must have a term that is no longer than ten years from the grant date. 31,852,747 stock options have been granted under the 2001 General Stock Option Plan.</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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">73</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_235"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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;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 May&#160;3, 2023 and is incorporated herein by reference.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_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;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 May&#160;3, 2023 and is incorporated herein by reference.</span></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_241"></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="id8333d090d7e467c8f0fde3d2520d2ed_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;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 id="id8333d090d7e467c8f0fde3d2520d2ed_247"></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">74</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_250"></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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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><td style="width:14.149%"></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:82.918%"></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: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><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><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="http://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><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="http://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><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="http://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><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="http://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><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="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit33.htm">By-laws of Cognex Corporation, as amended and restated through December 5, 2013 (incorporated by reference to Exhibit 3.3 of Cognex&#8217;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%">3F</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: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="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit34.htm">Amendment to Amended and Restated By-laws of Cognex Corporation, effective May 5, 2016 (incorporated by reference to Exhibit 3.4 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:#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%">4A</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: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:#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%">4B</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: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:#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%">10A *</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: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="http://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:#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%">10B *</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: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="http://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:#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%">10C *</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: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="http://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10k.htm">Form of Letter Agreement between Cognex Corporation and each of Patrick A. Alias 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:#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%">10D *</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: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="http://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:#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%">10E *</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: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="http://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:#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%">10F *</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: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="http://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:#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%">10G *</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: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="http://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:#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%">10H *</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: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="http://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:#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%">10I *</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: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="http://www.sec.gov/Archives/edgar/data/851205/000085120515000003/cgnx-20141231xexhibit10s.htm">Stock Option Agreements with Robert Willett dated November 3, 2014 (incorporated by reference to Exhibit 10S of Cognex's Annual Report on Form 10-K for the year ended December 31, 2014 [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><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="http://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><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></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">75</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:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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><td style="width:14.149%"></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:82.918%"></td><td style="width:0.1%"></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><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%">21</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: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-20221231xexhibit21.htm">Subsidiaries of the registrant (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%">23.1</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: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-20221231xexhibit231.htm">Consent of Grant Thornton LLP (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.1</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: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-20221231xexhibit311.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:#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.2</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: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-20221231xexhibit312.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:#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.1</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: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-20221231xexhibit321.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:#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.2</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: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-20221231xexhibit322.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:#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><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><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><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><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><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><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><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: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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">76</span></div></div></div><div id="id8333d090d7e467c8f0fde3d2520d2ed_253"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#id8333d090d7e467c8f0fde3d2520d2ed_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 16th day of February 2023.</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><td style="width:40.00pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:1.75pt"></td><td style="width:1.0pt"></td><td style="width:1.0pt"></td><td style="width:463.75pt"></td><td style="width:1.0pt"></td></tr><tr style="height:14pt"><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"><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><td colspan="6" style="padding:0 1pt"></td></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><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><td colspan="3" style="padding:0 1pt"></td><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><td colspan="3" style="padding:0 1pt"></td><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><td style="width:28.078%"></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:49.926%"></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.230%"></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:10pt;font-weight:400;line-height:100%;text-decoration:underline">Signature</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:'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><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><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td></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><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><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 16, 2023</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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td></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;Paul D. Todgham</span></td><td colspan="3" style="padding:0 1pt"></td><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;and&#160;accounting&#160;officer)</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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 16, 2023</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%">Paul D. Todgham</span></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 style="height:3pt"><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 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;Patrick Alias</span></td><td colspan="3" style="padding:0 1pt"></td><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><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 16, 2023</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%">Patrick Alias</span></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 style="height:3pt"><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 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;Theodor Krantz</span></td><td colspan="3" style="padding:0 1pt"></td><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><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 16, 2023</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%">Theodor Krantz</span></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 style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td></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><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><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 16, 2023</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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:3pt"><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 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><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><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 16, 2023</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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td></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><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><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 16, 2023</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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td></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><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><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 16, 2023</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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:3pt"><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 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><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><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 16, 2023</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><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></td><td colspan="6" style="padding:0 1pt"></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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">77</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21
<SEQUENCE>2
<FILENAME>cgnx-20221231xexhibit21.htm
<DESCRIPTION>EX-21
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2023 Workiva -->
<title>Document</title></head><body><div id="ib9760999237e4fd7a52f4a0a92da146a_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;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of December 31, 2022, 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></div><div style="margin-top:5pt;padding-left:4.5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.198%"><tr><td style="width:1.0%"></td><td style="width:54.473%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:26.525%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.702%"></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:9pt;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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Asia, 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Canada, 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Canada Technology, 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:9pt;font-weight:400;line-height:100%">California</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex EnShape 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Europe, B.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:9pt;font-weight:400;line-height:100%">Netherlands</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Europe, 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Foreign Sales Corporation</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:9pt;font-weight:400;line-height:100%">Barbados</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Germany, 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:9pt;font-weight:400;line-height:100%">Massachusetts</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Germany Aachen 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Goruntu Sistemleri Satis ve Ticaret Limited Sirketi</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:9pt;font-weight:400;line-height:100%">Turkey</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Hungary Kft.</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:9pt;font-weight:400;line-height:100%">Hungary</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex International, 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Ireland 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex K.K.</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:9pt;font-weight:400;line-height:100%">Japan</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Korea 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:9pt;font-weight:400;line-height:100%">Korea</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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Korea, 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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Mexico S.R.L.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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Poland 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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">Cognex Vision Spain, S.L.U.</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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">SuaLab (Suzhou) 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:9pt;font-weight:400;line-height:100%">China</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:9pt;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:9pt;font-weight:400;line-height:100%">Vision Drive, 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:9pt;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:9pt;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:9pt;font-weight:400;line-height:100%">One Vision Drive 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:9pt;font-weight:400;line-height:100%">Massachusetts</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:9pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">SAC Sirius Advanced Cybernetics GmbH</font></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Germany</font></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:9pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 10pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cognex Singapore Manufacturing Pte Ltd.</font></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Singapore</font></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:9pt;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
<SEQUENCE>3
<FILENAME>cgnx-20221231xexhibit231.htm
<DESCRIPTION>EX-23
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2023 Workiva -->
<title>Document</title></head><body><div id="i243c429075634f50b9069a2a8219f650_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 16, 2023, 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, 2022. We consent to the incorporation by reference of said reports in the Registration Statements of Cognex Corporation on Forms S-8 (333-150315&#59; 333-206081 and 333-224716) and Form S-8 POS (File No. 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:10pt;font-weight:400;line-height:127%">Boston</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">, 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;16, 2023 </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>4
<FILENAME>cgnx-20221231xexhibit311.htm
<DESCRIPTION>EX-31.1
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2023 Workiva -->
<title>Document</title></head><body><div id="i1ea990bafff849f5aeb8db1ef36b93e6_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 16, 2023</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>5
<FILENAME>cgnx-20221231xexhibit312.htm
<DESCRIPTION>EX-31.2
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2023 Workiva -->
<title>Document</title></head><body><div id="i00199d9aea8e47d089832aa9c607f87f_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, Paul D. Todgham, 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 16, 2023</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; Paul D. Todgham</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%">Paul D. Todgham</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>6
<FILENAME>cgnx-20221231xexhibit321.htm
<DESCRIPTION>EX-32.1
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2023 Workiva -->
<title>Document</title></head><body><div id="iccbcecf4812d43d08179e050f8d12dc9_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, 2022 (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 16, 2023</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>7
<FILENAME>cgnx-20221231xexhibit322.htm
<DESCRIPTION>EX-32.2
<TEXT>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2023 Workiva -->
<title>Document</title></head><body><div id="i67442f4269ff40bd950b0f67f28b4c81_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, 2022 (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 16, 2023</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; Paul D. Todgham</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%">Paul D. Todgham</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>8
<FILENAME>cgnx-20221231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2023 Workiva-->
<!--r:4dc635fe-3454-40d2-97d6-b433e40829c4,g:67c3b2b1-ab2e-47dc-be12-bcd61ff87e88-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cgnx="http://cognex.com/20221231" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://cognex.com/20221231">
  <xs:import namespace="http://fasb.org/srt/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd"/>
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.xbrl.org/2003/xlink-2003-12-31.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://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/country/2022" schemaLocation="https://xbrl.sec.gov/country/2022/country-2022.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/currency/2022" schemaLocation="https://xbrl.sec.gov/currency/2022/currency-2022.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2022" schemaLocation="https://xbrl.sec.gov/dei/2022/dei-2022.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-20221231_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-20221231_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-20221231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" 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-20221231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" 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>0000003 - 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>0000004 - 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>0000005 - 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>0000006 - 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>0000007 - 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>0000008 - 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>0000009 - 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>0000010 - 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>0000011 - 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>0000012 - 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>0000013 - 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>0000014 - 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>0000015 - 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>0000016 - 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>0000017 - 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>0000018 - 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>0000019 - 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>0000020 - 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>0000021 - 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>0000022 - 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>0000023 - 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>0000024 - 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>0000025 - 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>0000026 - 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>0000027 - 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>0000028 - 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>0000029 - 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>0000030 - 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>0000031 - 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>0000032 - 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="RestructuringCharges" roleURI="http://cognex.com/role/RestructuringCharges">
        <link:definition>0000033 - Disclosure - Restructuring Charges</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SubsequentEvents" roleURI="http://cognex.com/role/SubsequentEvents">
        <link:definition>0000034 - 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>0000035 - 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>0000036 - 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>0000037 - 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>0000038 - 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>0000039 - 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>0000040 - 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>0000041 - 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>0000042 - 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>0000043 - 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>0000044 - 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>0000045 - 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>0000046 - 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>0000047 - 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>0000048 - 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>0000049 - 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>0000050 - 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="RestructuringChargesTables" roleURI="http://cognex.com/role/RestructuringChargesTables">
        <link:definition>0000051 - Disclosure - Restructuring Charges (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail">
        <link:definition>0000052 - 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>0000053 - 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>0000054 - 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>0000055 - 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>0000056 - 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>0000057 - 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>0000058 - 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="FairValueMeasurementsAdditionalInformationDetails" roleURI="http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails">
        <link:definition>0000059 - Disclosure - Fair Value Measurements - 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="CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail">
        <link:definition>0000060 - 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>0000061 - 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>0000062 - 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>0000063 - 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="CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail">
        <link:definition>0000064 - 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>0000065 - 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>0000066 - 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>0000067 - 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>0000068 - 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>0000069 - 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>0000070 - 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>0000071 - 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="IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail">
        <link:definition>0000072 - 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="IntangibleAssetsNarrativeDetails" roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails">
        <link:definition>0000073 - 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="AccruedExpensesConstituentsofAccruedExpensesDetail" roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail">
        <link:definition>0000074 - 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>0000075 - 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>0000076 - 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>0000077 - 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>0000078 - 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>0000079 - 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>0000080 - 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>0000081 - 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>0000082 - 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>0000083 - 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>0000084 - 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>0000085 - 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>0000086 - 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>0000087 - 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>0000088 - 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>0000089 - 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>0000090 - 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>0000091 - 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>0000092 - 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>0000093 - 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>0000094 - 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>0000095 - 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>0000096 - 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>0000097 - 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>0000098 - 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>0000099 - 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>0000100 - 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>0000101 - 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>0000102 - 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="BusinessAcquisitionsSualabCoLtdNarrativeDetails" roleURI="http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails">
        <link:definition>0000103 - Disclosure - Business Acquisitions - Sualab Co., Ltd. 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="LossfromFireDetails" roleURI="http://cognex.com/role/LossfromFireDetails">
        <link:definition>0000104 - 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="RestructuringChargesAdditionalInformationDetails" roleURI="http://cognex.com/role/RestructuringChargesAdditionalInformationDetails">
        <link:definition>0000105 - Disclosure - Restructuring Charges - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails">
        <link:definition>0000106 - Disclosure - Restructuring Charges - Schedule of Restructuring and Related 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="RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails">
        <link:definition>0000107 - Disclosure - Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (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>0000108 - 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>0000109 - 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_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" abstract="false" name="EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" 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_CashCashEquivalentsShortTermAndLongTermInvestments" abstract="false" name="CashCashEquivalentsShortTermAndLongTermInvestments" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" abstract="false" name="StockRepurchasedDuringPeriodSharesNotYetSettled" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <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_DueFromForeignBanks" abstract="false" name="DueFromForeignBanks" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" abstract="true" name="CompletedTechnologiesAndOtherIntangibleAssetsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_NoncurrentDeferredTaxAssetsDeprecation" abstract="false" name="NoncurrentDeferredTaxAssetsDeprecation" nillable="true" xbrli:periodType="instant" 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_DeferredTaxAssetsTaxCreditCarryforwardsState" abstract="false" name="DeferredTaxAssetsTaxCreditCarryforwardsState" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_RepurchaseProgramOctober2018Member" abstract="true" name="RepurchaseProgramOctober2018Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_Customer1Member" abstract="true" name="Customer1Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_DiscreteTaxExpenseOtherTaxMattersMember" abstract="true" name="DiscreteTaxExpenseOtherTaxMattersMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_MinimumAgeToBeEligibleToDefinedContributionPlan" abstract="false" name="MinimumAgeToBeEligibleToDefinedContributionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <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_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" abstract="false" name="IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfOneYear" abstract="false" name="CompanyContributionsVestAtEndOfOneYear" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cgnx_EnShapeGmbHMember" abstract="true" name="EnShapeGmbHMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_OtherAsiaMember" abstract="true" name="OtherAsiaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_Customer2Member" abstract="true" name="Customer2Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_CompanyContributionsVestAtEndOfFourYears" abstract="false" name="CompanyContributionsVestAtEndOfFourYears" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <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_RepurchaseProgramMarch2020Member" abstract="true" name="RepurchaseProgramMarch2020Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" abstract="false" name="Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DiscreteTaxItemsAxis" abstract="true" name="DiscreteTaxItemsAxis" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:dimensionItem" type="xbrli:stringItemType"/>
  <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_ForeignTaxBenefitGainsTaxedOutsideUSMember" abstract="true" name="ForeignTaxBenefitGainsTaxedOutsideUSMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_AgencyBondsMember" abstract="true" name="AgencyBondsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types: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_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types: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_DiscreteTaxItemsDomain" abstract="true" name="DiscreteTaxItemsDomain" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_SACSiriusAdvancedCyberneticsGmbHMember" abstract="true" name="SACSiriusAdvancedCyberneticsGmbHMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_GreaterChinaMember" abstract="true" name="GreaterChinaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" abstract="false" name="SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AgencyBondsFairValueDisclosure" abstract="false" name="AgencyBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" 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_CorporateBondsFairValueDisclosure" abstract="false" name="CorporateBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DistributionNetworksAndCustomerRelationshipsMember" abstract="true" name="DistributionNetworksAndCustomerRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" abstract="false" name="EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" abstract="false" name="EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_May2020Member" abstract="true" name="May2020Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types: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_ContractLiabilityForeignExchangeRateChanges" abstract="false" name="ContractLiabilityForeignExchangeRateChanges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_RepurchaseProgramMarch2022Member" abstract="true" name="RepurchaseProgramMarch2022Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_NumberOfGroupsWithinEmployeePopulation" abstract="false" name="NumberOfGroupsWithinEmployeePopulation" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_ComputerHardwareAndSoftwareMember" abstract="true" name="ComputerHardwareAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_ProductCostOfRevenueMember" abstract="true" name="ProductCostOfRevenueMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_OtherGeographicAreaMember" abstract="true" name="OtherGeographicAreaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types: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_VoteEntitledForEachCommonShareOutstanding" abstract="false" name="VoteEntitledForEachCommonShareOutstanding" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <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_DeferredTaxAssetsForeignTaxStructureChange" abstract="false" name="DeferredTaxAssetsForeignTaxStructureChange" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GViVenturesInc.Member" abstract="true" name="GViVenturesInc.Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" abstract="false" name="EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <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_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" abstract="false" name="DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SellingGeneralAndAdministrativeMember" abstract="true" name="SellingGeneralAndAdministrativeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <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_SouthboroughMassachusettsMember" abstract="true" name="SouthboroughMassachusettsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types: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_GrossLossFromCatastrophes" abstract="false" name="GrossLossFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" 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_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-types:domainItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" abstract="false" name="OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <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_AssetBackedSecuritiesFairValueDisclosure" abstract="false" name="AssetBackedSecuritiesFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SualabCo.Ltd.Member" abstract="true" name="SualabCo.Ltd.Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_StateResearchAndExperimentationMember" abstract="true" name="StateResearchAndExperimentationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_CustomerContractsLiabilityCurrentRollForward" abstract="true" name="CustomerContractsLiabilityCurrentRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" abstract="false" name="EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" abstract="true" name="DiscreteTaxExpenseReturnToProvisionAdjustmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_IndemnificationProvisionsTextBlock" abstract="false" name="IndemnificationProvisionsTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="cgnx_HardwareAndSoftwareMember" abstract="true" name="HardwareAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_MunicipalBondsFairValueDisclosure" abstract="false" name="MunicipalBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" abstract="true" name="DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" abstract="false" name="EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_StandardProductandServicesMember" abstract="true" name="StandardProductandServicesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_MaximumInvestmentOfCompanyInPartnership" abstract="false" name="MaximumInvestmentOfCompanyInPartnership" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cgnx_CustomerContractsAndRelationshipsMember" abstract="true" name="CustomerContractsAndRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfTwoYear" abstract="false" name="CompanyContributionsVestAtEndOfTwoYear" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cgnx_RevenuePaymentTerms" abstract="false" name="RevenuePaymentTerms" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_ApplicationofCustomerSpecificSolutionsMember" abstract="true" name="ApplicationofCustomerSpecificSolutionsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" abstract="false" name="ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="cgnx_AuditInformationAbstract" abstract="true" name="AuditInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_ExpirationPeriodOfStockOptionPlan" abstract="false" name="ExpirationPeriodOfStockOptionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfThreeYears" abstract="false" name="CompanyContributionsVestAtEndOfThreeYears" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cgnx_LongTermInvestmentsMember" abstract="true" name="LongTermInvestmentsMember" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_December2022Member" abstract="true" name="December2022Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_NatureOfOperationsPolicyTextBlock" abstract="false" name="NatureOfOperationsPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" abstract="false" name="LesseeOperatingLeaseOptionToRenewTermOfContract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <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_ForeignTaxExpenseTransferPriceAdjustmentMember" abstract="true" name="ForeignTaxExpenseTransferPriceAdjustmentMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <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_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types:percentItemType"/>
  <xs:element id="cgnx_CatastropheTextBlock" abstract="false" name="CatastropheTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
  <xs:element id="cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" abstract="false" name="ConcentrationsOfRiskPolicyPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:textBlockItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>9
<FILENAME>cgnx-20221231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2023 Workiva-->
<!--r:4dc635fe-3454-40d2-97d6-b433e40829c4,g:67c3b2b1-ab2e-47dc-be12-bcd61ff87e88-->
<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-20221231.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_68645acb-6a8c-425a-88ba-c68b523aaa7e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_a16ded50-ae92-4028-a506-66bcdcdfc3fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_68645acb-6a8c-425a-88ba-c68b523aaa7e" xlink:to="loc_us-gaap_OperatingIncomeLoss_a16ded50-ae92-4028-a506-66bcdcdfc3fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_c311fb39-a16e-4882-8c4a-f82c33a646a8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_68645acb-6a8c-425a-88ba-c68b523aaa7e" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_c311fb39-a16e-4882-8c4a-f82c33a646a8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_a4ed5b8e-fc4c-4ddf-aabd-5225d5f7bd5a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_68645acb-6a8c-425a-88ba-c68b523aaa7e" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_a4ed5b8e-fc4c-4ddf-aabd-5225d5f7bd5a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_ac77163e-019c-490c-acba-19c77807884b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_68645acb-6a8c-425a-88ba-c68b523aaa7e" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_ac77163e-019c-490c-acba-19c77807884b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_4318c203-368f-4b87-ba2f-5beca7e2fd54" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_6653c3bf-7546-4946-a185-a891d3564138" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_4318c203-368f-4b87-ba2f-5beca7e2fd54" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_6653c3bf-7546-4946-a185-a891d3564138" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_1680d192-6211-4dd0-8dd7-dec9de1319fe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_4318c203-368f-4b87-ba2f-5beca7e2fd54" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_1680d192-6211-4dd0-8dd7-dec9de1319fe" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_ed49a403-99fa-44ad-98b8-80a73f3e557b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_ed49a403-99fa-44ad-98b8-80a73f3e557b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_e8b7a176-fd95-4479-9fd3-38c2d4f6177f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LossFromCatastrophes"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:to="loc_us-gaap_LossFromCatastrophes_e8b7a176-fd95-4479-9fd3-38c2d4f6177f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_4ad6ec89-c06c-4bf7-ac83-487414bcf22f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_4ad6ec89-c06c-4bf7-ac83-487414bcf22f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_eac7010d-78d5-4383-a414-07c873fdbdf1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_eac7010d-78d5-4383-a414-07c873fdbdf1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_21f82bae-871a-490b-b5aa-2e98af3ad62c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:to="loc_us-gaap_RestructuringCharges_21f82bae-871a-490b-b5aa-2e98af3ad62c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_3c1b8c57-e5da-46a7-a844-5789f8d9340d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_a09f66c0-82c4-4a0d-a888-0f06cae83edb" xlink:to="loc_us-gaap_GrossProfit_3c1b8c57-e5da-46a7-a844-5789f8d9340d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_6300e661-6ace-403b-91ed-f7413c11e092" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_cf725a40-901d-4259-a64f-deacbf54e8b5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_6300e661-6ace-403b-91ed-f7413c11e092" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_cf725a40-901d-4259-a64f-deacbf54e8b5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_571297ee-8774-4a67-9568-77331048213b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_6300e661-6ace-403b-91ed-f7413c11e092" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_571297ee-8774-4a67-9568-77331048213b" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_681ee48d-02fd-4630-80fb-fd68e994eadb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_c96dbf56-2686-4f9e-8d23-a82f3ce976df" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_681ee48d-02fd-4630-80fb-fd68e994eadb" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_c96dbf56-2686-4f9e-8d23-a82f3ce976df" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_7d5d41e6-2cf0-4adc-97ff-0707f079ee6d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_681ee48d-02fd-4630-80fb-fd68e994eadb" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_7d5d41e6-2cf0-4adc-97ff-0707f079ee6d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_a2920448-03c7-49b4-b3c9-774ad67052de" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_57ef2004-02cd-43fa-9dab-8ed9c9541190" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_a2920448-03c7-49b4-b3c9-774ad67052de" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_57ef2004-02cd-43fa-9dab-8ed9c9541190" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_583b41f4-b919-41ff-a751-ab681aa29bf8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_b8c310b7-dc0e-49a3-8736-3c132a1c6c3f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_583b41f4-b919-41ff-a751-ab681aa29bf8" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_b8c310b7-dc0e-49a3-8736-3c132a1c6c3f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_e9baa837-a9bf-4f7d-8148-3f333099633b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_583b41f4-b919-41ff-a751-ab681aa29bf8" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_e9baa837-a9bf-4f7d-8148-3f333099633b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_d29cb418-54a6-4994-8800-12e68be572da" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_cfa11153-7b7a-46f3-864c-f20c867e890e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d29cb418-54a6-4994-8800-12e68be572da" xlink:to="loc_us-gaap_NetIncomeLoss_cfa11153-7b7a-46f3-864c-f20c867e890e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_6ab2ae64-c4e1-49db-a446-cbb3297377d3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d29cb418-54a6-4994-8800-12e68be572da" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_6ab2ae64-c4e1-49db-a446-cbb3297377d3" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CONSOLIDATEDBALANCESHEETS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_c1425896-3a21-4bbe-972d-5acb13291365" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_ba06bfd6-010c-40d2-b2e8-54d821a018e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1425896-3a21-4bbe-972d-5acb13291365" xlink:to="loc_us-gaap_AccountsPayableCurrent_ba06bfd6-010c-40d2-b2e8-54d821a018e3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_c1dc083e-9d15-40c9-a0cf-2813d2dffa77" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1425896-3a21-4bbe-972d-5acb13291365" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_c1dc083e-9d15-40c9-a0cf-2813d2dffa77" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_08bc12b1-4188-4311-9303-cac683671223" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1425896-3a21-4bbe-972d-5acb13291365" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_08bc12b1-4188-4311-9303-cac683671223" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_2ce6d483-f6fa-4122-a161-93853124799d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1425896-3a21-4bbe-972d-5acb13291365" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_2ce6d483-f6fa-4122-a161-93853124799d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_761dca09-1270-4b12-8b36-c728e29623b9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1425896-3a21-4bbe-972d-5acb13291365" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_761dca09-1270-4b12-8b36-c728e29623b9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_b4bd27ee-5c39-4698-afbc-19dbdf28e9df" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_1aca1c87-3f46-4a1c-a2dc-665bd169ed59" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_b4bd27ee-5c39-4698-afbc-19dbdf28e9df" xlink:to="loc_us-gaap_Liabilities_1aca1c87-3f46-4a1c-a2dc-665bd169ed59" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_2a0c4728-2223-4738-a2d1-e2c1a7e31685" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_b4bd27ee-5c39-4698-afbc-19dbdf28e9df" xlink:to="loc_us-gaap_CommitmentsAndContingencies_2a0c4728-2223-4738-a2d1-e2c1a7e31685" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_8a7221e3-f462-430e-b93d-4c912c040c78" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_b4bd27ee-5c39-4698-afbc-19dbdf28e9df" xlink:to="loc_us-gaap_StockholdersEquity_8a7221e3-f462-430e-b93d-4c912c040c78" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_d795454b-c001-48e5-a5d7-89ceb7bff084" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_1e5835d1-fa93-44fa-9bab-9dcc725ffd3c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d795454b-c001-48e5-a5d7-89ceb7bff084" xlink:to="loc_us-gaap_CommonStockValueOutstanding_1e5835d1-fa93-44fa-9bab-9dcc725ffd3c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_d488b0f7-2a2d-4ffa-8bd4-c9da06d95726" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d795454b-c001-48e5-a5d7-89ceb7bff084" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_d488b0f7-2a2d-4ffa-8bd4-c9da06d95726" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_7ad81165-d746-4db3-ac43-e49654bf2e73" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d795454b-c001-48e5-a5d7-89ceb7bff084" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_7ad81165-d746-4db3-ac43-e49654bf2e73" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_9cb21c2a-927c-458d-b4fa-130f1cca0077" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d795454b-c001-48e5-a5d7-89ceb7bff084" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_9cb21c2a-927c-458d-b4fa-130f1cca0077" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_b0430c00-c8d4-4e7d-a4ed-df57295cabfb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d795454b-c001-48e5-a5d7-89ceb7bff084" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_b0430c00-c8d4-4e7d-a4ed-df57295cabfb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_d487fa7b-d1b6-4fed-8750-6b6f9331f94d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_d487fa7b-d1b6-4fed-8750-6b6f9331f94d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_ee95d0c6-02da-46aa-8885-d9e4309ca0f3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_ee95d0c6-02da-46aa-8885-d9e4309ca0f3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_b50f3c11-7383-4af2-9163-99e2f9f1e800" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_b50f3c11-7383-4af2-9163-99e2f9f1e800" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_76866ecf-7e9b-4e00-8163-471e2dcfe39e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:to="loc_us-gaap_InventoryNet_76866ecf-7e9b-4e00-8163-471e2dcfe39e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_68a709a6-b798-484b-9a11-fb5ac1e19c0f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_68a709a6-b798-484b-9a11-fb5ac1e19c0f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_5b878f55-a9b3-4fdb-b456-dfc92a24cd62" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_9e67cf69-d48b-4066-bb40-222dc4518b8f" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_5b878f55-a9b3-4fdb-b456-dfc92a24cd62" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_7302950c-46cf-4c7f-8985-883089c42e79" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_64948490-2f67-46f1-a4fe-fabfe9ba46fe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7302950c-46cf-4c7f-8985-883089c42e79" xlink:to="loc_us-gaap_LiabilitiesCurrent_64948490-2f67-46f1-a4fe-fabfe9ba46fe" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_9d990228-2d95-434b-bed1-10a2d03006be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7302950c-46cf-4c7f-8985-883089c42e79" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_9d990228-2d95-434b-bed1-10a2d03006be" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_43b76b3e-df18-4ab4-9fb5-7a7055e7e03c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7302950c-46cf-4c7f-8985-883089c42e79" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_43b76b3e-df18-4ab4-9fb5-7a7055e7e03c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_0370c691-027f-4628-a0c7-6e3b5e21fc8d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7302950c-46cf-4c7f-8985-883089c42e79" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_0370c691-027f-4628-a0c7-6e3b5e21fc8d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_128a8c21-dbc5-4dc3-9ccd-2afe0920ea5e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7302950c-46cf-4c7f-8985-883089c42e79" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_128a8c21-dbc5-4dc3-9ccd-2afe0920ea5e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_795fb267-288f-43f4-a298-b35632969eea" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7302950c-46cf-4c7f-8985-883089c42e79" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_795fb267-288f-43f4-a298-b35632969eea" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_b9720809-9c2b-40f6-a9b0-f7a7ae282756" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_AssetsCurrent_b9720809-9c2b-40f6-a9b0-f7a7ae282756" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_1c0c079f-5d37-45ea-89ba-6c85ffe20ca3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_LongTermInvestments_1c0c079f-5d37-45ea-89ba-6c85ffe20ca3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_2417a59d-24af-4b51-9d53-6c2f5af03880" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_2417a59d-24af-4b51-9d53-6c2f5af03880" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_79e9b042-99a7-45f3-b91e-0212f54d883b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_79e9b042-99a7-45f3-b91e-0212f54d883b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_b1582d48-e53c-4071-a9c2-0413e05291d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_b1582d48-e53c-4071-a9c2-0413e05291d8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_03f07d9c-2072-41d7-8203-3a4fab43e771" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_Goodwill_03f07d9c-2072-41d7-8203-3a4fab43e771" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_3aed99f8-238c-4095-9f6e-a86fa5513fb1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_3aed99f8-238c-4095-9f6e-a86fa5513fb1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_0983f46a-812f-459c-92cb-465debf96430" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_8b701881-b86a-4dcc-8b05-973a26990c51" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_0983f46a-812f-459c-92cb-465debf96430" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CONSOLIDATEDSTATEMENTSOFCASHFLOWS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_685d773d-3c01-4065-8b0f-a38ce9b4bd4b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_93dea165-2b1a-47b9-bb63-e40df22492a1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_685d773d-3c01-4065-8b0f-a38ce9b4bd4b" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_93dea165-2b1a-47b9-bb63-e40df22492a1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_793d7bfe-37f1-41a6-9e95-74992a7e98fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_685d773d-3c01-4065-8b0f-a38ce9b4bd4b" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_793d7bfe-37f1-41a6-9e95-74992a7e98fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_3da56990-a7d5-4100-a904-1b48d6e1a3ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_685d773d-3c01-4065-8b0f-a38ce9b4bd4b" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_3da56990-a7d5-4100-a904-1b48d6e1a3ba" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_b48bbda7-4ead-4464-aba6-5dd25311db5e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_685d773d-3c01-4065-8b0f-a38ce9b4bd4b" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_b48bbda7-4ead-4464-aba6-5dd25311db5e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_08858cd3-cdca-429a-8e10-f175b060c068" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_3fa914a1-5072-468b-8b43-cf2820d62946" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_08858cd3-cdca-429a-8e10-f175b060c068" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_3fa914a1-5072-468b-8b43-cf2820d62946" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_9c5e52a6-1e78-4dd7-86f4-31bb2ced2cdb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_08858cd3-cdca-429a-8e10-f175b060c068" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_9c5e52a6-1e78-4dd7-86f4-31bb2ced2cdb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_7d0f44d9-b423-4cb5-922c-b7ab9cd5e4ef" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_08858cd3-cdca-429a-8e10-f175b060c068" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_7d0f44d9-b423-4cb5-922c-b7ab9cd5e4ef" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_16479304-bac0-4f24-94c5-c427eac022f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_08858cd3-cdca-429a-8e10-f175b060c068" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_16479304-bac0-4f24-94c5-c427eac022f4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_2917051f-0d7f-451b-8713-2caeb7abcdd1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_2917051f-0d7f-451b-8713-2caeb7abcdd1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_46f9ccad-b502-4da0-acff-a7f0dc255edc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_46f9ccad-b502-4da0-acff-a7f0dc255edc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_10646187-7d4b-48fb-860f-5ed6078fa838" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_10646187-7d4b-48fb-860f-5ed6078fa838" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_05aa2a69-f4d8-4de3-816b-a33f32ee0dc9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_05aa2a69-f4d8-4de3-816b-a33f32ee0dc9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_2810858b-ea62-494a-9e9f-85d45972f8e1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_2810858b-ea62-494a-9e9f-85d45972f8e1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_d16fe9be-46c5-4687-a5c9-7431036b0549" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:calculationArc order="6" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_d16fe9be-46c5-4687-a5c9-7431036b0549" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_cf768eab-dcd6-4fc2-a6a6-0913880d061d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_NetIncomeLoss_cf768eab-dcd6-4fc2-a6a6-0913880d061d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_29b7603a-7107-4b47-9bb2-648a93cf8f03" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_29b7603a-7107-4b47-9bb2-648a93cf8f03" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_67be85dc-6587-4a23-a23d-dfd1dd9a0b22" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_67be85dc-6587-4a23-a23d-dfd1dd9a0b22" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_24a14124-580c-45f9-94cd-fb898a7b4b64" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_24a14124-580c-45f9-94cd-fb898a7b4b64" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_254f614c-be12-4f84-a6e2-a3cf581c0b9a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="11" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_254f614c-be12-4f84-a6e2-a3cf581c0b9a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_a6b4c3b0-5f58-4ce2-98f7-14754fb0f6a5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_a6b4c3b0-5f58-4ce2-98f7-14754fb0f6a5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_c2de42b4-a91a-43d7-9d60-a159ab02ec07" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:calculationArc order="13" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_c2de42b4-a91a-43d7-9d60-a159ab02ec07" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_e7b394ba-d8c1-4f0d-94dd-be26ce49c468" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_StockOptionPlanExpense_e7b394ba-d8c1-4f0d-94dd-be26ce49c468" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_ffef6942-f7c9-4c28-b140-5fc6ecfef17b" xlink:href="cgnx-20221231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:calculationArc order="15" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_ffef6942-f7c9-4c28-b140-5fc6ecfef17b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_d41b6394-9414-45ce-813d-6d3005d4451c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:calculationArc order="16" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_d41b6394-9414-45ce-813d-6d3005d4451c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_a9298b48-6edd-41c6-9b45-bfb88ccbc72a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_Depreciation_a9298b48-6edd-41c6-9b45-bfb88ccbc72a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_bf8bac2d-6e5a-431c-9c89-af8966ecfd1f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:calculationArc order="18" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_bf8bac2d-6e5a-431c-9c89-af8966ecfd1f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_8795635d-cc2a-4d52-92fb-d49303385e59" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:calculationArc order="19" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_8795635d-cc2a-4d52-92fb-d49303385e59" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes_aced2ef2-1e27-4223-9eb6-6b5025bb38c2" xlink:href="cgnx-20221231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:calculationArc order="20" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_cgnx_NonCashLossFromCatastrophes_aced2ef2-1e27-4223-9eb6-6b5025bb38c2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_ceb07218-c53f-4641-85cb-ce50a307de8f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="21" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_ceb07218-c53f-4641-85cb-ce50a307de8f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_9c364855-b246-4d22-8c76-f0e4a8b81906" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:calculationArc order="22" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_e0ff2925-88da-4c78-8532-a872babcbe29" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_9c364855-b246-4d22-8c76-f0e4a8b81906" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_1b638e78-ba49-4658-b4bd-15d719c707e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_45a64486-48f1-42fd-befb-c62b7d4827ac" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_1b638e78-ba49-4658-b4bd-15d719c707e3" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_45a64486-48f1-42fd-befb-c62b7d4827ac" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_ef2ddda9-b742-4bf6-8925-69170f92e976" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_1b638e78-ba49-4658-b4bd-15d719c707e3" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_ef2ddda9-b742-4bf6-8925-69170f92e976" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_f4aeba32-9635-414e-abbd-0cb887968542" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_1b638e78-ba49-4658-b4bd-15d719c707e3" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_f4aeba32-9635-414e-abbd-0cb887968542" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_2f5d4be3-c0aa-498b-90c1-6a9cf0c5d7fe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_1b638e78-ba49-4658-b4bd-15d719c707e3" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_2f5d4be3-c0aa-498b-90c1-6a9cf0c5d7fe" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_79b30d18-a884-409f-aa4a-ca63f9e77815" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_a9fec654-3a74-47d7-9c4e-f565018cd06a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_79b30d18-a884-409f-aa4a-ca63f9e77815" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_a9fec654-3a74-47d7-9c4e-f565018cd06a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_c1dd8bbd-f175-41a6-8a52-d7af11599ee8" xlink:href="cgnx-20221231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_efa92932-baeb-4d4d-8412-4716a23bfbd9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1dd8bbd-f175-41a6-8a52-d7af11599ee8" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_efa92932-baeb-4d4d-8412-4716a23bfbd9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_b23b9c48-b543-473d-a2a3-9d5ee6f0a681" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1dd8bbd-f175-41a6-8a52-d7af11599ee8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_b23b9c48-b543-473d-a2a3-9d5ee6f0a681" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_6c9b7456-7d4c-428c-94ce-414f48751657" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c1dd8bbd-f175-41a6-8a52-d7af11599ee8" xlink:to="loc_us-gaap_LongTermInvestments_6c9b7456-7d4c-428c-94ce-414f48751657" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_114491ab-b26d-445e-a115-c99c9c4aa181" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_1f7c0d44-73b4-4f13-b692-90832b1682ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_114491ab-b26d-445e-a115-c99c9c4aa181" xlink:to="loc_us-gaap_Cash_1f7c0d44-73b4-4f13-b692-90832b1682ff" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_071d3d22-af22-45ca-8027-bc69dbdc1733" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_114491ab-b26d-445e-a115-c99c9c4aa181" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_071d3d22-af22-45ca-8027-bc69dbdc1733" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_cc6fe8c0-8e48-41d0-ab53-dfc9b43f0cb0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_57e6ca45-3822-4f15-adce-c8f0e732792a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_cc6fe8c0-8e48-41d0-ab53-dfc9b43f0cb0" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_57e6ca45-3822-4f15-adce-c8f0e732792a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_99a06ccd-193d-404f-901a-40d30ab1de61" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_cc6fe8c0-8e48-41d0-ab53-dfc9b43f0cb0" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_99a06ccd-193d-404f-901a-40d30ab1de61" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77f23a0e-4575-4ff5-b82e-96d2c6b9a20d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_cc6fe8c0-8e48-41d0-ab53-dfc9b43f0cb0" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77f23a0e-4575-4ff5-b82e-96d2c6b9a20d" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_7a18b83d-7694-4a26-bc22-39c83dff0e54" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_de336932-591b-41fd-a0a3-b7fe9dcc78f9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7a18b83d-7694-4a26-bc22-39c83dff0e54" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_de336932-591b-41fd-a0a3-b7fe9dcc78f9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_202aa9af-0b0b-4ff8-a41d-92887c90c223" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7a18b83d-7694-4a26-bc22-39c83dff0e54" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_202aa9af-0b0b-4ff8-a41d-92887c90c223" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_af9989b5-5934-40cf-992b-6054f4906a7b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_844fee7e-e76b-4f06-a275-c9df30d7b695" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_af9989b5-5934-40cf-992b-6054f4906a7b" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_844fee7e-e76b-4f06-a275-c9df30d7b695" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_5cc9c6f0-1364-4d23-943b-fbad9f0a33c7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_af9989b5-5934-40cf-992b-6054f4906a7b" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_5cc9c6f0-1364-4d23-943b-fbad9f0a33c7" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_51a44156-bcef-416d-8f95-df7925a005b1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_eaf509d0-49d2-42cb-b520-c2b73686b21d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_51a44156-bcef-416d-8f95-df7925a005b1" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_eaf509d0-49d2-42cb-b520-c2b73686b21d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_746c2e18-79f4-4056-acb0-bb851b58a50e" xlink:href="cgnx-20221231.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_51a44156-bcef-416d-8f95-df7925a005b1" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_746c2e18-79f4-4056-acb0-bb851b58a50e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_d4ad460d-8b11-442d-a56b-b24b7dde602b" xlink:href="cgnx-20221231.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_51a44156-bcef-416d-8f95-df7925a005b1" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_d4ad460d-8b11-442d-a56b-b24b7dde602b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_7f74376e-7a40-4a56-8387-606fe104782c" xlink:href="cgnx-20221231.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_51a44156-bcef-416d-8f95-df7925a005b1" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_7f74376e-7a40-4a56-8387-606fe104782c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_efd2e817-01e8-44df-ac58-a0e8264e7ca6" xlink:href="cgnx-20221231.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_51a44156-bcef-416d-8f95-df7925a005b1" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_efd2e817-01e8-44df-ac58-a0e8264e7ca6" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_7d11c882-f61f-401b-87f4-bba0b127ade1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_9b6b0c57-2cee-43ff-8fc7-ef7d60e88bfa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7d11c882-f61f-401b-87f4-bba0b127ade1" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_9b6b0c57-2cee-43ff-8fc7-ef7d60e88bfa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_19e11fdd-90cc-4a97-8c19-65fd579f5900" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7d11c882-f61f-401b-87f4-bba0b127ade1" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_19e11fdd-90cc-4a97-8c19-65fd579f5900" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_fc623fae-1e74-4815-9593-1ce5a0f52a66" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_7d11c882-f61f-401b-87f4-bba0b127ade1" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_fc623fae-1e74-4815-9593-1ce5a0f52a66" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_d741fb6d-461b-4cf9-84c4-7bc071877a7a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_cb04188b-5270-474d-8c19-6ad9e4562c2b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d741fb6d-461b-4cf9-84c4-7bc071877a7a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_cb04188b-5270-474d-8c19-6ad9e4562c2b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_7a7c4e3f-d5db-43d2-87fa-ac8c26ceb7ea" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_d741fb6d-461b-4cf9-84c4-7bc071877a7a" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_7a7c4e3f-d5db-43d2-87fa-ac8c26ceb7ea" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="simple" xlink:href="cgnx-20221231.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_9d2ef919-12e5-4294-9371-125c55cd0c07" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_9d2ef919-12e5-4294-9371-125c55cd0c07" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_9f6c96a5-dd2a-4fe0-99d6-66bd3ce1c74a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_9f6c96a5-dd2a-4fe0-99d6-66bd3ce1c74a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_4f64e22e-2ee0-4c75-900a-2699354b66cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_4f64e22e-2ee0-4c75-900a-2699354b66cf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_253d30ed-05e6-44bf-96cf-5a5dc1eb383a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_253d30ed-05e6-44bf-96cf-5a5dc1eb383a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_9531bc13-7c52-447e-84af-2bd3d809108d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_9531bc13-7c52-447e-84af-2bd3d809108d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_78b323aa-0881-4017-851a-b64ea8efcaf0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_321dc8df-f8e9-43fc-a31d-70a377990ef3" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_78b323aa-0881-4017-851a-b64ea8efcaf0" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_c2cd7089-e500-4613-8809-d07ab9eca942" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_4d8e643a-189f-4d8d-baaa-5eb3f66b56b7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c2cd7089-e500-4613-8809-d07ab9eca942" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_4d8e643a-189f-4d8d-baaa-5eb3f66b56b7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_b94d89a3-7726-4279-84d4-512c77278245" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c2cd7089-e500-4613-8809-d07ab9eca942" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_b94d89a3-7726-4279-84d4-512c77278245" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_c036bc18-1e86-4e98-820f-ebb3f3fd7669" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_c036bc18-1e86-4e98-820f-ebb3f3fd7669" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_450479c0-b226-4250-b417-aa26172c2123" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_450479c0-b226-4250-b417-aa26172c2123" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_ce93f612-0bcf-4698-982e-b453e8decfee" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_ce93f612-0bcf-4698-982e-b453e8decfee" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_76fbe3a4-a0a7-465f-8521-20540c8d0c69" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_76fbe3a4-a0a7-465f-8521-20540c8d0c69" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_ea71cf0a-3761-4268-8ee6-310b4da71d6b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_ea71cf0a-3761-4268-8ee6-310b4da71d6b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_583664ed-c2d2-47a2-9a3a-6147fec89664" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_0dca9535-f8de-4629-9d9c-ce8820602279" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_583664ed-c2d2-47a2-9a3a-6147fec89664" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent_d81f2aec-714d-41a7-aa35-19560d98b986" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:to="loc_us-gaap_AccruedSalariesCurrent_d81f2aec-714d-41a7-aa35-19560d98b986" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance_ef2c9c37-6174-4d10-96d4-694892ed9955" xlink:href="cgnx-20221231.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:to="loc_cgnx_RetirementAllowance_ef2c9c37-6174-4d10-96d4-694892ed9955" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_cbac9c32-268b-40ff-96ce-99d3c0074529" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_cbac9c32-268b-40ff-96ce-99d3c0074529" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent_6c002b41-3c6f-44ba-b5f3-36bf68af034e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:to="loc_us-gaap_AccruedVacationCurrent_6c002b41-3c6f-44ba-b5f3-36bf68af034e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent_9ba973d2-2f02-48a0-98bf-687c45e394fa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:to="loc_us-gaap_AccruedBonusesCurrent_9ba973d2-2f02-48a0-98bf-687c45e394fa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_3aafedb9-814c-45d6-8313-3b2f206db2e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_c999d1dd-d6de-48f3-82b2-9ea454e62545" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_3aafedb9-814c-45d6-8313-3b2f206db2e4" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="simple" xlink:href="cgnx-20221231.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_fc708890-44ec-4b97-bae2-815ede95ef58" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_320ef2d4-b018-497d-a611-d40b5ca3ca3a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_fc708890-44ec-4b97-bae2-815ede95ef58" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_320ef2d4-b018-497d-a611-d40b5ca3ca3a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_98a2afa3-7238-48e1-85b5-1f396f5d812d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_fc708890-44ec-4b97-bae2-815ede95ef58" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_98a2afa3-7238-48e1-85b5-1f396f5d812d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_495c0aaf-0ab3-4c3a-913c-434edd0b31db" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_0d33f2b6-5448-45da-8b29-59797cc6f872" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_495c0aaf-0ab3-4c3a-913c-434edd0b31db" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_0d33f2b6-5448-45da-8b29-59797cc6f872" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_8ce0aa9f-0862-4839-92e2-e15b67bf6450" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_495c0aaf-0ab3-4c3a-913c-434edd0b31db" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_8ce0aa9f-0862-4839-92e2-e15b67bf6450" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#EmployeeSavingsPlanAdditionalInformationDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_9924c086-9ced-4fd1-a970-090c022872f0" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_f855c4da-4eb6-4d2f-9f7a-4d4d07ef0b0d" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_9924c086-9ced-4fd1-a970-090c022872f0" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_f855c4da-4eb6-4d2f-9f7a-4d4d07ef0b0d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_87114f6e-e392-4300-a997-f04203698403" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_9924c086-9ced-4fd1-a970-090c022872f0" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_87114f6e-e392-4300-a997-f04203698403" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_15a09b37-4b9f-4f42-bab6-c0362b2ed692" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_9924c086-9ced-4fd1-a970-090c022872f0" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_15a09b37-4b9f-4f42-bab6-c0362b2ed692" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_bd20752f-5c62-4b0b-bcce-00a89ee543b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_ac45986f-9310-4b31-b69d-664cb15ae0f0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bd20752f-5c62-4b0b-bcce-00a89ee543b8" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_ac45986f-9310-4b31-b69d-664cb15ae0f0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_6a4448b0-125b-4592-b86b-f2a7889b05ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bd20752f-5c62-4b0b-bcce-00a89ee543b8" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_6a4448b0-125b-4592-b86b-f2a7889b05ff" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_443977bc-ba29-4766-ab99-99798d2ce4ce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_22757f7f-0b11-404f-bbbc-061cbfaa1c03" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_443977bc-ba29-4766-ab99-99798d2ce4ce" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_22757f7f-0b11-404f-bbbc-061cbfaa1c03" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_a9db0444-bbe0-42b4-8084-8063dbde7e5e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_443977bc-ba29-4766-ab99-99798d2ce4ce" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_a9db0444-bbe0-42b4-8084-8063dbde7e5e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_eb403e91-77e0-48ef-89bc-32ffe1720513" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_443977bc-ba29-4766-ab99-99798d2ce4ce" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_eb403e91-77e0-48ef-89bc-32ffe1720513" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_f5653012-8d44-420a-89c2-05e711d04a14" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_254bda0a-a2bd-43ac-bd58-243ea034753f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_f5653012-8d44-420a-89c2-05e711d04a14" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_254bda0a-a2bd-43ac-bd58-243ea034753f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_e92b8c30-6b36-4678-a4a0-38efcd057589" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_f5653012-8d44-420a-89c2-05e711d04a14" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_e92b8c30-6b36-4678-a4a0-38efcd057589" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_9e453896-f385-4f58-af5f-876e6fef5eb2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_f5653012-8d44-420a-89c2-05e711d04a14" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_9e453896-f385-4f58-af5f-876e6fef5eb2" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20221231.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_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_370dd34c-77d5-4bf8-8701-60de211d0dfb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_370dd34c-77d5-4bf8-8701-60de211d0dfb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_88c9be26-74d5-41fa-8832-2d0c2c7cc9b4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_88c9be26-74d5-41fa-8832-2d0c2c7cc9b4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_d42bd5c4-44ca-4360-8f74-a046d93b81db" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_d42bd5c4-44ca-4360-8f74-a046d93b81db" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_42d57a9a-672c-470a-ac66-f7e10bdd3bd1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_42d57a9a-672c-470a-ac66-f7e10bdd3bd1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_6af9d8f9-f7fa-43dc-8e54-bc8f06796146" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_6af9d8f9-f7fa-43dc-8e54-bc8f06796146" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_303f08fb-67e0-407a-9373-5baad1822bb3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_303f08fb-67e0-407a-9373-5baad1822bb3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_f97a75f1-6f7e-4741-b2a1-1335edd83814" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_f97a75f1-6f7e-4741-b2a1-1335edd83814" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_41680d52-dd8a-484f-bbd2-5b3e90f9e669" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_41680d52-dd8a-484f-bbd2-5b3e90f9e669" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_ae0937df-24a0-47cc-902c-d2437e41c0fe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_ae0937df-24a0-47cc-902c-d2437e41c0fe" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_df872ae7-abbb-4e0a-8888-a82cf606ee4f" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_df872ae7-abbb-4e0a-8888-a82cf606ee4f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_1a971775-0770-4498-a8ca-eb50fed08c46" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_1a971775-0770-4498-a8ca-eb50fed08c46" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_99422561-afe5-47b1-a9cc-5c2454d7790a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:calculationArc order="12" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_99422561-afe5-47b1-a9cc-5c2454d7790a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_1660bd49-6189-4d01-8230-960d1f0ac6c1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:calculationArc order="13" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_bcb9a0e2-bd76-45b3-b05f-98be1ea1a236" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_1660bd49-6189-4d01-8230-960d1f0ac6c1" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="cgnx-20221231.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_1613f5a5-01dc-4ae9-a424-62ecec763a24" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_e4c008a7-7ff1-44f0-b991-ddc52462fa76" xlink:href="cgnx-20221231.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_1613f5a5-01dc-4ae9-a424-62ecec763a24" xlink:to="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_e4c008a7-7ff1-44f0-b991-ddc52462fa76" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_53a13041-d039-41f4-90e2-6707edc4de0e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_1613f5a5-01dc-4ae9-a424-62ecec763a24" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_53a13041-d039-41f4-90e2-6707edc4de0e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_1ba56fdf-f8fb-4fe8-89cd-0226205f1a3c" xlink:href="cgnx-20221231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_2ee4d660-78e9-448a-bb9a-980dc802fc41" xlink:href="cgnx-20221231.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_1ba56fdf-f8fb-4fe8-89cd-0226205f1a3c" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_2ee4d660-78e9-448a-bb9a-980dc802fc41" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_9e9cdf0b-81a0-4b7d-b116-cb4a8d7986fa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_1ba56fdf-f8fb-4fe8-89cd-0226205f1a3c" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_9e9cdf0b-81a0-4b7d-b116-cb4a8d7986fa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_36c9b8e3-701b-4f89-ac92-27a755325f94" xlink:href="cgnx-20221231.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_36c9b8e3-701b-4f89-ac92-27a755325f94" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_48b16561-75fb-47cd-8df6-053d8dfea3d2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_48b16561-75fb-47cd-8df6-053d8dfea3d2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_1ba0775a-93f4-468a-b122-5ecdbfb1f2ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_1ba0775a-93f4-468a-b122-5ecdbfb1f2ba" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_8956de0f-4ac6-4cef-8979-86ecda8a6bfa" xlink:href="cgnx-20221231.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_8956de0f-4ac6-4cef-8979-86ecda8a6bfa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_e761bf18-0b6a-4ab2-937f-2ac0a4461fe7" xlink:href="cgnx-20221231.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_e761bf18-0b6a-4ab2-937f-2ac0a4461fe7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_48057245-4cb3-48ec-843b-6f5c6b34c798" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_48057245-4cb3-48ec-843b-6f5c6b34c798" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_25e9a6d2-6127-453e-8cb6-1d02f0799ec2" xlink:href="cgnx-20221231.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_25e9a6d2-6127-453e-8cb6-1d02f0799ec2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_3da705c9-4529-49cf-89ac-654d8290f682" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_3da705c9-4529-49cf-89ac-654d8290f682" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_8722622e-77f2-4c8d-80db-8b5ea05c6a55" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_bdae8202-73bc-4b02-a544-34abd9aa22eb" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_8722622e-77f2-4c8d-80db-8b5ea05c6a55" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_e66280aa-31b6-41da-a676-f71f37a6c571" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_458e80b3-4a02-4a80-856d-715ed73b0174" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_e66280aa-31b6-41da-a676-f71f37a6c571" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_458e80b3-4a02-4a80-856d-715ed73b0174" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_30cfcf8e-8dc0-44f2-9d15-7a98ed722869" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_e66280aa-31b6-41da-a676-f71f37a6c571" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_30cfcf8e-8dc0-44f2-9d15-7a98ed722869" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>cgnx-20221231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2023 Workiva-->
<!--r:4dc635fe-3454-40d2-97d6-b433e40829c4,g:67c3b2b1-ab2e-47dc-be12-bcd61ff87e88-->
<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-20221231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="extended" id="i9eb3062c7d7a4e1e926f993e489b3b99_CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_c40d03ba-a8d8-41b4-af0f-1fee9d36b571" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_c40d03ba-a8d8-41b4-af0f-1fee9d36b571" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_3cd38de8-50e6-4eab-aef8-cf85f38009cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockholdersEquity_3cd38de8-50e6-4eab-aef8-cf85f38009cb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_85653113-557a-4e77-a2d8-046ae1094bb7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_CommonStockSharesIssued_85653113-557a-4e77-a2d8-046ae1094bb7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_af810229-fe6a-4c4d-9ab8-c6aaaa6cd3e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_af810229-fe6a-4c4d-9ab8-c6aaaa6cd3e3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6a298f13-493f-466f-b465-928d9d240e8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6a298f13-493f-466f-b465-928d9d240e8b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_3a97a9f8-a5fc-4ae1-a253-c5b0ed1648b6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_3a97a9f8-a5fc-4ae1-a253-c5b0ed1648b6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_ba76b5aa-1cf2-49b6-880a-360b0630689d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_ba76b5aa-1cf2-49b6-880a-360b0630689d" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_6e77e82b-15af-41ce-8c0e-bd7bf649c53d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_6e77e82b-15af-41ce-8c0e-bd7bf649c53d" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash_fbc70dfa-3cc5-4fd4-992a-13c21c4fee3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_DividendsCommonStockCash_fbc70dfa-3cc5-4fd4-992a-13c21c4fee3d" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d1ba9bfa-d5be-4719-86da-6e75a5728d1e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_NetIncomeLoss_d1ba9bfa-d5be-4719-86da-6e75a5728d1e" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_815a18cc-46d1-48f4-8756-5d3f41208c24" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_815a18cc-46d1-48f4-8756-5d3f41208c24" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_24f537be-6460-4176-b2c7-cd7b8592e70d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_24f537be-6460-4176-b2c7-cd7b8592e70d" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2207eadc-b722-4c86-a6fe-ac6b8fe492dc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2207eadc-b722-4c86-a6fe-ac6b8fe492dc" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_47409ae2-e293-4709-bc4d-dde569cd9255" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_47409ae2-e293-4709-bc4d-dde569cd9255" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_32e8e0e0-f44b-4415-82a9-8266c256fdd2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_426fd3e0-18cb-4beb-92df-52f7b2aa5475" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_c40d03ba-a8d8-41b4-af0f-1fee9d36b571" xlink:to="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_8321923e-c99f-4109-b627-e787fc854272_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:to="loc_us-gaap_EquityComponentDomain_8321923e-c99f-4109-b627-e787fc854272_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:to="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_25479c06-4063-4716-b5c4-0ccffaf39f61" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_CommonStockMember_25479c06-4063-4716-b5c4-0ccffaf39f61" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_f3c18969-2a3d-463b-ab63-45924de50622" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_f3c18969-2a3d-463b-ab63-45924de50622" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_0c8a22bf-b7c7-434a-8604-d6421026b36f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_RetainedEarningsMember_0c8a22bf-b7c7-434a-8604-d6421026b36f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_51a50413-44c1-4a51-9090-9c940967ef33" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_51a50413-44c1-4a51-9090-9c940967ef33" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended" id="ic8e2f65bd21c4538a8ca1b559ae39322_SummaryofSignificantAccountingPoliciesAdditionalInformationDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_3d41e057-5f25-4dfb-837e-170d69a70b08" xlink:href="cgnx-20221231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_3d41e057-5f25-4dfb-837e-170d69a70b08" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_18abc29d-a74f-4199-951d-71adb64e0839" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_18abc29d-a74f-4199-951d-71adb64e0839" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_ebce096f-f056-45fa-bbdb-c9ebafc2bb6a" xlink:href="cgnx-20221231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_ebce096f-f056-45fa-bbdb-c9ebafc2bb6a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_355688a9-6adc-4be8-80a0-e0345cc5b0ee_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_355688a9-6adc-4be8-80a0-e0345cc5b0ee_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_bde14f4d-d5e5-4cbe-9f97-a17707502b74" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_BuildingMember_bde14f4d-d5e5-4cbe-9f97-a17707502b74" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_4383cc52-e482-4cf8-b7a6-f46b1f01b5ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_BuildingImprovementsMember_4383cc52-e482-4cf8-b7a6-f46b1f01b5ff" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_724b02c6-c4b6-4916-b891-03e87ede378a" xlink:href="cgnx-20221231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_724b02c6-c4b6-4916-b891-03e87ede378a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_617dda83-e791-4ff7-abac-9ae00ff141d0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_EquipmentMember_617dda83-e791-4ff7-abac-9ae00ff141d0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_bbd81279-70e3-4f66-8418-2f689ef6eb8d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_bbd81279-70e3-4f66-8418-2f689ef6eb8d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:to="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:to="loc_srt_RangeMember_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:to="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_bc3bba47-a8b3-4d47-9eef-33fa6eb1ee16" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:to="loc_srt_MinimumMember_bc3bba47-a8b3-4d47-9eef-33fa6eb1ee16" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_c8cff76e-021d-4209-b85b-94558c5211be" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:to="loc_srt_MaximumMember_c8cff76e-021d-4209-b85b-94558c5211be" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended" id="i1d5877ff695a437b80c72cd6776dcfd0_SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6a0ca7c-95d2-4794-bf37-4fa28b47ff63" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_c94a8caf-bd60-4760-ba41-fd523ba26852" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6a0ca7c-95d2-4794-bf37-4fa28b47ff63" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_c94a8caf-bd60-4760-ba41-fd523ba26852" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6a0ca7c-95d2-4794-bf37-4fa28b47ff63" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d43909de-a5a3-4335-8e1f-1a3eaee24a2f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d43909de-a5a3-4335-8e1f-1a3eaee24a2f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_04570795-d83f-489a-8a0e-cf80f37dec4b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_us-gaap_DistributionRightsMember_04570795-d83f-489a-8a0e-cf80f37dec4b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_0de5cadd-cb47-4fa1-a2fb-8a6fe77fe2b2" xlink:href="cgnx-20221231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_0de5cadd-cb47-4fa1-a2fb-8a6fe77fe2b2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_d96e678f-9333-4087-9bf5-c3c4fe0fcc6a" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_d96e678f-9333-4087-9bf5-c3c4fe0fcc6a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_f0bb4525-8c3b-4609-887e-c23c0e6c849d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_f0bb4525-8c3b-4609-887e-c23c0e6c849d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_651152c4-64b9-4fc9-a466-1bab701e84c8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_us-gaap_TrademarksMember_651152c4-64b9-4fc9-a466-1bab701e84c8" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:to="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_e6c14424-6e7c-4686-a5da-322e8c5db33f_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:to="loc_srt_RangeMember_e6c14424-6e7c-4686-a5da-322e8c5db33f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:to="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_1b14301e-c566-4bf2-aeeb-440e11520bb3" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:to="loc_srt_MinimumMember_1b14301e-c566-4bf2-aeeb-440e11520bb3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_ef1f2a62-3e7d-4970-91a6-72594d096821" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:to="loc_srt_MaximumMember_ef1f2a62-3e7d-4970-91a6-72594d096821" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SummaryofSignificantAccountingPoliciesWarrantyDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended" id="i24d251f617e34347b503e528d5627c3d_SummaryofSignificantAccountingPoliciesWarrantyDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_e03cbf94-e6ef-4647-ad3f-4136b49aadb2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod_fc566679-ade5-4508-9a23-5a717af04e93" xlink:href="cgnx-20221231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_e03cbf94-e6ef-4647-ad3f-4136b49aadb2" xlink:to="loc_cgnx_ProductWarrantyPeriod_fc566679-ade5-4508-9a23-5a717af04e93" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_e03cbf94-e6ef-4647-ad3f-4136b49aadb2" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:to="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:to="loc_srt_RangeMember_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:to="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_b1802d51-1007-45af-947d-eca11cf94ffe" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:to="loc_srt_MinimumMember_b1802d51-1007-45af-947d-eca11cf94ffe" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_a796618e-b0a6-4e2c-a81e-0d7abeb91631" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:to="loc_srt_MaximumMember_a796618e-b0a6-4e2c-a81e-0d7abeb91631" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended" id="i8043fa61d4e34411a99c876c043d944a_SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_2cd72887-df8a-4b0c-8677-043cb9a8fa28" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms_f72bdb8a-4238-467f-ac6e-8b4e4a463217" xlink:href="cgnx-20221231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2cd72887-df8a-4b0c-8677-043cb9a8fa28" xlink:to="loc_cgnx_RevenuePaymentTerms_f72bdb8a-4238-467f-ac6e-8b4e4a463217" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2cd72887-df8a-4b0c-8677-043cb9a8fa28" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:to="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_cdcf515c-2000-416b-a28e-b0a908f28af7_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:to="loc_srt_RangeMember_cdcf515c-2000-416b-a28e-b0a908f28af7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:to="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_7eea2908-79a5-4651-8efb-c4a3635e9147" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:to="loc_srt_MinimumMember_7eea2908-79a5-4651-8efb-c4a3635e9147" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_c709a4d2-febf-4f57-9754-f717baade346" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:to="loc_srt_MaximumMember_c709a4d2-febf-4f57-9754-f717baade346" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="extended" id="ibad3930323994c1b967266bfb37bf09d_SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_d89cb42e-6d3e-4cf0-bdc0-13995ef3ef56" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_d89cb42e-6d3e-4cf0-bdc0-13995ef3ef56" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_9995a827-79d3-460a-a52c-9983543943cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_9995a827-79d3-460a-a52c-9983543943cb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_279781dd-6e85-4840-902b-ec47c4741517" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_279781dd-6e85-4840-902b-ec47c4741517" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_0a6372e8-0ce2-47b0-92ac-e76d45c34052" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_0a6372e8-0ce2-47b0-92ac-e76d45c34052" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_a9312b69-cb7a-409d-9dd9-62490e874a6f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:to="loc_us-gaap_EquityComponentDomain_a9312b69-cb7a-409d-9dd9-62490e874a6f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_b06bab96-4e65-4ef8-b71c-8a194d15405b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:to="loc_us-gaap_EquityComponentDomain_b06bab96-4e65-4ef8-b71c-8a194d15405b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_937b96b4-3bcc-4722-ab1f-c8aa9d7b9e61" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_b06bab96-4e65-4ef8-b71c-8a194d15405b" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_937b96b4-3bcc-4722-ab1f-c8aa9d7b9e61" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="extended" id="i8637db9dfb984b43989f6d172d57a100_FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_1d4e2db7-f267-4a2f-a14a-aa711206addc" xlink:href="cgnx-20221231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_1d4e2db7-f267-4a2f-a14a-aa711206addc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_f4d3b1ce-0a81-4918-809f-0a21d860491d" xlink:href="cgnx-20221231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_f4d3b1ce-0a81-4918-809f-0a21d860491d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_b8e149df-381f-4570-ba93-df18a5a99afb" xlink:href="cgnx-20221231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_b8e149df-381f-4570-ba93-df18a5a99afb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_0825d667-0c53-47dc-bf08-f586c5ccd609" xlink:href="cgnx-20221231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_0825d667-0c53-47dc-bf08-f586c5ccd609" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_4bc7c2ef-b643-4add-a779-ce3ec9223eb1" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_AgencyBondsFairValueDisclosure_4bc7c2ef-b643-4add-a779-ce3ec9223eb1" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_424bd167-cb69-46b3-bd32-20c6fcce18d0" xlink:href="cgnx-20221231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_424bd167-cb69-46b3-bd32-20c6fcce18d0" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_ad4a8716-f5e5-486d-97c7-0ea972397d61" xlink:href="cgnx-20221231.xsd#cgnx_MunicipalBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_MunicipalBondsFairValueDisclosure_ad4a8716-f5e5-486d-97c7-0ea972397d61" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_a6b7d77f-41d0-4750-b48a-7c4bada24488" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_a6b7d77f-41d0-4750-b48a-7c4bada24488" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_f3c40f8b-2ea6-4963-9ab4-f0af2c2b5bc4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_f3c40f8b-2ea6-4963-9ab4-f0af2c2b5bc4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_3124654c-e42a-4e95-8bfd-a65ce560728b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_f3c40f8b-2ea6-4963-9ab4-f0af2c2b5bc4" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_3124654c-e42a-4e95-8bfd-a65ce560728b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_66c91a78-1e48-4b89-b70d-bcff17f5cfbe_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_66c91a78-1e48-4b89-b70d-bcff17f5cfbe_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_3bdebfbe-3caa-4c79-bca3-a222fa500ba1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_3bdebfbe-3caa-4c79-bca3-a222fa500ba1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_f758c1e2-de59-4d57-945a-96f674e5bd26" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_f758c1e2-de59-4d57-945a-96f674e5bd26" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_959a2813-ceb0-4063-b77b-f4bf6f52a582" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_959a2813-ceb0-4063-b77b-f4bf6f52a582" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_05fde6fe-84c1-418b-9da4-84c149f8af5b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_05fde6fe-84c1-418b-9da4-84c149f8af5b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_a8623725-ec25-483a-afef-6f22d26f45ce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_a8623725-ec25-483a-afef-6f22d26f45ce" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_92cfbf9d-e955-4282-8d5e-d4033b48dd9f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_a8623725-ec25-483a-afef-6f22d26f45ce" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_92cfbf9d-e955-4282-8d5e-d4033b48dd9f" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#FairValueMeasurementsAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails" xlink:type="extended" id="i8a68219db8fa45e4ade9cd1839467234_FairValueMeasurementsAdditionalInformationDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_ec551eed-a048-4c83-b763-ec72a7b6e4a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_ec551eed-a048-4c83-b763-ec72a7b6e4a6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_a5d43328-1ab1-4ebc-b8fe-30d10607e215" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_a5d43328-1ab1-4ebc-b8fe-30d10607e215" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8f4323c7-7ce4-4046-837d-8bbca878b903" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8f4323c7-7ce4-4046-837d-8bbca878b903" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a52cd9a7-58f8-4961-97b9-e4efc424ac30_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a52cd9a7-58f8-4961-97b9-e4efc424ac30_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cc13320b-92c4-48a6-ae27-015a7df8cac9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cc13320b-92c4-48a6-ae27-015a7df8cac9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GViVenturesInc.Member_d175f932-6638-4a02-8702-4df00a6991ab" xlink:href="cgnx-20221231.xsd#cgnx_GViVenturesInc.Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cc13320b-92c4-48a6-ae27-015a7df8cac9" xlink:to="loc_cgnx_GViVenturesInc.Member_d175f932-6638-4a02-8702-4df00a6991ab" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended" id="ib30784f205a0489a930d65289f46e6cf_CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_42f0abf5-4e1e-4c1d-b0e7-4675f92307f0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Cash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_Cash_42f0abf5-4e1e-4c1d-b0e7-4675f92307f0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06e15165-0cb2-4cdf-82fd-fc1c4d6d39d9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06e15165-0cb2-4cdf-82fd-fc1c4d6d39d9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_820c432c-c95b-48c8-89a4-73db54036538" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_820c432c-c95b-48c8-89a4-73db54036538" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_882259cb-53f1-4ff9-b9d2-25ebc37209f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_882259cb-53f1-4ff9-b9d2-25ebc37209f4" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_45cfb7c7-49c5-4aaa-ac25-8d92f2a19560" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_45cfb7c7-49c5-4aaa-ac25-8d92f2a19560" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_b887b650-64ca-48d5-b2e4-72249a1ac318" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_LongTermInvestments_b887b650-64ca-48d5-b2e4-72249a1ac318" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_e2fbc5e5-1a4a-4724-9be5-3655687d314c" xlink:href="cgnx-20221231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_e2fbc5e5-1a4a-4724-9be5-3655687d314c" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:to="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_0c4fd245-ac60-479e-a44a-0519c79947b8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_0c4fd245-ac60-479e-a44a-0519c79947b8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_ebcc13cf-4dfe-4edb-9741-13916273ff55" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_ebcc13cf-4dfe-4edb-9741-13916273ff55" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_a90ab083-842d-4714-911b-468d3aee1e31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_a90ab083-842d-4714-911b-468d3aee1e31" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_4c13f5a8-14f7-4e0a-94c0-b8510215dc5d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_4c13f5a8-14f7-4e0a-94c0-b8510215dc5d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_dfe865f5-f5e8-45c5-9581-049050269d72" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_dfe865f5-f5e8-45c5-9581-049050269d72" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_10a82177-2d2b-4c44-b547-70d3b0ab6c5b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_MunicipalBondsMember_10a82177-2d2b-4c44-b547-70d3b0ab6c5b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_e917f2b8-7ee4-4449-b54e-c4a2420bd7b7" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_cgnx_AgencyBondsMember_e917f2b8-7ee4-4449-b54e-c4a2420bd7b7" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended" id="i8f5da3c725284ba08f3a8c114487b3a6_CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_72703280-9a5b-4db2-99d5-4d231638941c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_72703280-9a5b-4db2-99d5-4d231638941c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ce9b473a-e628-4297-8d9b-6e1b14a2444c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ce9b473a-e628-4297-8d9b-6e1b14a2444c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_fdf0a0f4-0beb-4292-a0f4-eefe99566129" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_fdf0a0f4-0beb-4292-a0f4-eefe99566129" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c66c3364-6d1e-4647-bb8f-779b6ecf5b9e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c66c3364-6d1e-4647-bb8f-779b6ecf5b9e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:to="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_88736c9f-e836-4fe5-9801-a9293b1bdf76_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_88736c9f-e836-4fe5-9801-a9293b1bdf76_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_fd02859f-d03b-4f5a-a6b4-631f64dadd16" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_fd02859f-d03b-4f5a-a6b4-631f64dadd16" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_2a0c647b-78b7-497e-81ed-0c2d7e3602e6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_2a0c647b-78b7-497e-81ed-0c2d7e3602e6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_a743b409-ed1a-4f5d-9c55-c2944534cde3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_a743b409-ed1a-4f5d-9c55-c2944534cde3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_ac94bebe-3aa2-4c35-9826-2fa44c727ada" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_ac94bebe-3aa2-4c35-9826-2fa44c727ada" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_1afb6907-1e33-4e41-b90b-878b9c733d9b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_MunicipalBondsMember_1afb6907-1e33-4e41-b90b-878b9c733d9b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_c76765d2-f729-4090-8438-44384a0fcd22" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_cgnx_AgencyBondsMember_c76765d2-f729-4090-8438-44384a0fcd22" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:href="cgnx-20221231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:to="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_58eb6fd0-061b-4e3d-94ce-02f8e4f14918_default" xlink:href="cgnx-20221231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:to="loc_cgnx_InvestmentDurationDomain_58eb6fd0-061b-4e3d-94ce-02f8e4f14918_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:href="cgnx-20221231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:to="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_3c82b256-32d9-49bd-93d2-60d67fda75a2" xlink:href="cgnx-20221231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:to="loc_cgnx_LongTermInvestmentsMember_3c82b256-32d9-49bd-93d2-60d67fda75a2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_c2d7b2e5-d310-4a8e-a3dd-e570e6320cc5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_c2d7b2e5-d310-4a8e-a3dd-e570e6320cc5" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended" id="i7d44ae66e73c4855baf66c29c731a46e_CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_af4ee6a3-9383-4681-b356-624a5705f8cd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_af4ee6a3-9383-4681-b356-624a5705f8cd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_204f9cca-90c3-42c7-955e-ec3c9d14ec45" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_204f9cca-90c3-42c7-955e-ec3c9d14ec45" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_e18ed1cb-f8df-401b-aa15-35c11bf9aae4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_e18ed1cb-f8df-401b-aa15-35c11bf9aae4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_f320a7e4-802d-4a78-a3a5-8f2f4cd6bc21" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_f320a7e4-802d-4a78-a3a5-8f2f4cd6bc21" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_5643e724-2280-4afd-a8be-3abb5c1e39c2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_5643e724-2280-4afd-a8be-3abb5c1e39c2" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_ed7066eb-e506-4d6d-806b-8408a4237219" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_ed7066eb-e506-4d6d-806b-8408a4237219" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:to="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b7f337de-1d14-4c53-8336-b3b22a70abf3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b7f337de-1d14-4c53-8336-b3b22a70abf3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_9deb4847-75e8-4aca-9a9a-5eb4171fcd0f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_9deb4847-75e8-4aca-9a9a-5eb4171fcd0f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_af33a692-a224-40ba-bb34-d92baa382ad3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_af33a692-a224-40ba-bb34-d92baa382ad3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_14a5a65f-e282-496a-b994-306320cfb526" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_14a5a65f-e282-496a-b994-306320cfb526" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_49e1f7a3-6d21-4579-832c-79411002764e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_49e1f7a3-6d21-4579-832c-79411002764e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_c943036a-b424-4dd7-ac79-9fc1585d571a" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_cgnx_AgencyBondsMember_c943036a-b424-4dd7-ac79-9fc1585d571a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_bea217aa-3374-4d8b-ab40-0097ff1ddf10" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_MunicipalBondsMember_bea217aa-3374-4d8b-ab40-0097ff1ddf10" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended" id="i9eda0ba70c544160850f7f00ff96a820_CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_415ce7d4-746c-496f-b136-6f1f09550b0c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_415ce7d4-746c-496f-b136-6f1f09550b0c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_2724130e-d182-4ea2-abdf-8c87f2869280" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_2724130e-d182-4ea2-abdf-8c87f2869280" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_01ce50f6-d419-47bf-ba82-cc7c5b3d7b19" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_01ce50f6-d419-47bf-ba82-cc7c5b3d7b19" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_1ff6bc11-f2c8-42e0-aa2d-98b2d65a438f" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_1ff6bc11-f2c8-42e0-aa2d-98b2d65a438f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_49431a01-8370-418f-9e3b-ae830a0a539d" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_49431a01-8370-418f-9e3b-ae830a0a539d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d661642b-86b8-4cba-aa22-9a1d73df63f9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d661642b-86b8-4cba-aa22-9a1d73df63f9" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_2e746c8e-efe9-4b0a-8922-bd352a51c47a" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_2e746c8e-efe9-4b0a-8922-bd352a51c47a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:to="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_74baa3fa-c489-4f32-a678-852690b3c208_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_74baa3fa-c489-4f32-a678-852690b3c208_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_fa4da418-53de-4ad3-af8c-18e09a60d856" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_fa4da418-53de-4ad3-af8c-18e09a60d856" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_48200438-359e-4af5-b712-78edd2cf5d86" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_48200438-359e-4af5-b712-78edd2cf5d86" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_48bcec3f-4dcc-4036-a46b-6f85792c426a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_48bcec3f-4dcc-4036-a46b-6f85792c426a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_e78ebc28-43c7-4d53-80e0-9f299f086cc1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_e78ebc28-43c7-4d53-80e0-9f299f086cc1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_4d4b199c-c391-4be5-bf78-72aceda7f304" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_MunicipalBondsMember_4d4b199c-c391-4be5-bf78-72aceda7f304" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_9c3a32ef-6ce0-4dd0-b6b4-826eefbe9a94" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_cgnx_AgencyBondsMember_9c3a32ef-6ce0-4dd0-b6b4-826eefbe9a94" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended" id="i5bc1d32bdfc8406e83a387b3ebce5cf8_PropertyPlantandEquipmentPropertyPlantandEquipmentDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_87ea8e44-831c-4607-9139-b0d65f3c63e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_87ea8e44-831c-4607-9139-b0d65f3c63e4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_afd12de8-2bbf-4054-9fad-14e99dbf3340" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_afd12de8-2bbf-4054-9fad-14e99dbf3340" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_c6ac5d7c-713c-4b43-a15c-b576c6344784" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_c6ac5d7c-713c-4b43-a15c-b576c6344784" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d4626984-a82a-49c3-88f1-52e0884d05bf_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d4626984-a82a-49c3-88f1-52e0884d05bf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_5f7bdef7-3f96-4177-bb6d-2db2d5adcb41" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_LandMember_5f7bdef7-3f96-4177-bb6d-2db2d5adcb41" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_9e999afd-5950-4895-ba54-bed17bc05a94" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_BuildingMember_9e999afd-5950-4895-ba54-bed17bc05a94" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_d28a55ac-7767-479c-9aff-a0d4c74bdb21" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_BuildingImprovementsMember_d28a55ac-7767-479c-9aff-a0d4c74bdb21" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_6274ff67-fb97-4501-aa3a-6f3e105a637f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_6274ff67-fb97-4501-aa3a-6f3e105a637f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember_2d4332d4-7316-479b-8d99-27e188e85594" xlink:href="cgnx-20221231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_cgnx_HardwareAndSoftwareMember_2d4332d4-7316-479b-8d99-27e188e85594" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_97c47f19-ae0f-4ec9-82b1-c4f121e2e1cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_EquipmentMember_97c47f19-ae0f-4ec9-82b1-c4f121e2e1cf" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_cb8ba003-945c-452b-9439-0fad7f44f7ae" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_cb8ba003-945c-452b-9439-0fad7f44f7ae" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#PropertyPlantandEquipmentAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="extended" id="iaf9560cbfb804483b91973e21a7912d1_PropertyPlantandEquipmentAdditionalInformationDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8fb1bfb1-8bb2-4593-953c-fe6c92a367e2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8fb1bfb1-8bb2-4593-953c-fe6c92a367e2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_e33e6bc0-c7f6-443a-a328-3f918a83fa45" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_e33e6bc0-c7f6-443a-a328-3f918a83fa45" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_fccac1be-8e7b-43a6-824e-b863ee1cef94" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_fccac1be-8e7b-43a6-824e-b863ee1cef94" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:to="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain_4a90ba23-f91b-4b76-9d8d-3570f6078046_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:to="loc_us-gaap_CatastrophicEventDomain_4a90ba23-f91b-4b76-9d8d-3570f6078046_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain_14de9301-252a-4e58-a0d3-2758dc0c8a67" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:to="loc_us-gaap_CatastrophicEventDomain_14de9301-252a-4e58-a0d3-2758dc0c8a67" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_61afd363-2616-43eb-93d0-0719f615aebe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DamageFromFireExplosionOrOtherHazardMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CatastrophicEventDomain_14de9301-252a-4e58-a0d3-2758dc0c8a67" xlink:to="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_61afd363-2616-43eb-93d0-0719f615aebe" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#LeasesDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended" id="i93c7a81f7ee8417bad0676bee89b7d8d_LeasesDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_84f0cf2d-f65b-40e8-8dd7-22775a3f7f11" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseExpense_84f0cf2d-f65b-40e8-8dd7-22775a3f7f11" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_ca4a2087-9627-4762-9d3d-b7f4080a3770" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasePayments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeasePayments_ca4a2087-9627-4762-9d3d-b7f4080a3770" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_118a5581-39df-4d28-ae67-875c4e29c791" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_118a5581-39df-4d28-ae67-875c4e29c791" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_c6b5b196-f32b-4c3f-81fa-b62943ae5387" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_c6b5b196-f32b-4c3f-81fa-b62943ae5387" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_9426874a-e87a-4a94-8eb9-7c1a25dc16fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseLiability_9426874a-e87a-4a94-8eb9-7c1a25dc16fc" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea_747b0dee-d4a3-4ddc-94de-c74e65162195" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetRentableArea"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_NetRentableArea_747b0dee-d4a3-4ddc-94de-c74e65162195" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3b778856-0167-4232-8882-a839c69d0cc0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3b778856-0167-4232-8882-a839c69d0cc0" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_a0446d56-56d2-47cb-8769-cead43862c03" xlink:href="cgnx-20221231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_a0446d56-56d2-47cb-8769-cead43862c03" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_17af9e2d-547e-4fae-80c9-57ed598dd0e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_17af9e2d-547e-4fae-80c9-57ed598dd0e3" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_ef901d17-7cee-4656-8afa-cd2a10cd4a38" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_ef901d17-7cee-4656-8afa-cd2a10cd4a38" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_fea0d3b6-ee0f-4dcc-a227-cc5823d572d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_fea0d3b6-ee0f-4dcc-a227-cc5823d572d8" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_fdf17763-fa49-44b5-b512-7b232c6ceab7" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_fdf17763-fa49-44b5-b512-7b232c6ceab7" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_d453d6e6-e028-4979-9cf2-8e37a485bc07" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_AssetImpairmentCharges_d453d6e6-e028-4979-9cf2-8e37a485bc07" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome_50ed203e-37b7-45eb-8b1b-ce7f10939b8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLeaseIncome"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseLeaseIncome_50ed203e-37b7-45eb-8b1b-ce7f10939b8b" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList_12487160-9fb5-4f11-be6e-48d41404e7bc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList_12487160-9fb5-4f11-be6e-48d41404e7bc" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:to="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_aa795916-04c3-4c62-a837-d92f1b719b95_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:to="loc_srt_SegmentGeographicalDomain_aa795916-04c3-4c62-a837-d92f1b719b95_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_9e563a09-7817-4ac2-a312-4e9eefca0c6d" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:to="loc_srt_SegmentGeographicalDomain_9e563a09-7817-4ac2-a312-4e9eefca0c6d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SouthboroughMassachusettsMember_b0f9bbd4-41dc-47bb-af24-711a278c92a2" xlink:href="cgnx-20221231.xsd#cgnx_SouthboroughMassachusettsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_9e563a09-7817-4ac2-a312-4e9eefca0c6d" xlink:to="loc_cgnx_SouthboroughMassachusettsMember_b0f9bbd4-41dc-47bb-af24-711a278c92a2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_43b4a473-8478-4184-b12d-a732008fb3e4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_43b4a473-8478-4184-b12d-a732008fb3e4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_ebee4583-9870-4c56-a084-c685b442a729" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_ebee4583-9870-4c56-a084-c685b442a729" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_18768341-b97f-4b4e-b7c4-eb635ac66b99" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_ebee4583-9870-4c56-a084-c685b442a729" xlink:to="loc_us-gaap_ContractTerminationMember_18768341-b97f-4b4e-b7c4-eb635ac66b99" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#GoodwillChangesintheCarryingValueofGoodwillDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="extended" id="ia68c6375a34d471ba2956643ec449c68_GoodwillChangesintheCarryingValueofGoodwillDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_56294fa9-df60-42dd-a583-59ccb8042d0b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_56294fa9-df60-42dd-a583-59ccb8042d0b" xlink:to="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_8759962e-4505-4d52-8b9f-6f333da4befd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_Goodwill_8759962e-4505-4d52-8b9f-6f333da4befd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease_3d9d2e7a-01a2-49aa-8b17-c9c3cbd491f0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_GoodwillOtherIncreaseDecrease_3d9d2e7a-01a2-49aa-8b17-c9c3cbd491f0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_d1744696-1fa4-40df-a300-6e4145d4e72f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_d1744696-1fa4-40df-a300-6e4145d4e72f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_3cf5e06c-d5fe-4197-ba26-75e9859e3936" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_56294fa9-df60-42dd-a583-59ccb8042d0b" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6772ae92-b33c-4c63-aa09-6e5098566d5a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_6772ae92-b33c-4c63-aa09-6e5098566d5a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4a102ef7-9bbc-468d-8e7b-953aa5582520" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4a102ef7-9bbc-468d-8e7b-953aa5582520" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_b110cf93-561e-4bd0-8fbe-d3d1eb05e0ee" xlink:href="cgnx-20221231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4a102ef7-9bbc-468d-8e7b-953aa5582520" xlink:to="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_b110cf93-561e-4bd0-8fbe-d3d1eb05e0ee" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended" id="i5b67fd49f3e14b0d87adf3f33feb5c48_IntangibleAssetsAmortizedIntangibleAssetsDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_c8ea5bbc-0c67-4388-be3b-756794c79b50" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_c8ea5bbc-0c67-4388-be3b-756794c79b50" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_9acee88a-5300-469b-bbd9-b269797e421a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_9acee88a-5300-469b-bbd9-b269797e421a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_18311835-05ce-4681-9154-6dd4c9000ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_18311835-05ce-4681-9154-6dd4c9000ecd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_3f5f36ce-c081-497f-8cd6-1c709e92480e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_3f5f36ce-c081-497f-8cd6-1c709e92480e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_43ca2f11-14f6-4d19-87ff-85329f9f086a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_DistributionRightsMember_43ca2f11-14f6-4d19-87ff-85329f9f086a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_fb549fb3-e58f-46f4-bb3c-12c6b41669d3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_fb549fb3-e58f-46f4-bb3c-12c6b41669d3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_e594a19a-d94f-4850-be8e-9e8057779d77" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_e594a19a-d94f-4850-be8e-9e8057779d77" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_001be64e-85ff-4ae5-9b6f-1abb7ba06d31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_001be64e-85ff-4ae5-9b6f-1abb7ba06d31" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_0a1615eb-4b45-4187-8e3b-86a55bbfec33" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_TrademarksMember_0a1615eb-4b45-4187-8e3b-86a55bbfec33" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_798bf172-2012-4b1b-8424-61dfc3f777f3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_798bf172-2012-4b1b-8424-61dfc3f777f3" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#IntangibleAssetsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="extended" id="ide4088f9be61439090e77193ce566c5f_IntangibleAssetsNarrativeDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6e9dc993-efe4-4137-b78a-53e8af748503" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6e9dc993-efe4-4137-b78a-53e8af748503" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_1e8ea2f6-a4cd-4231-91b4-bd0a7897ab59" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_1e8ea2f6-a4cd-4231-91b4-bd0a7897ab59" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_3450c911-dbe8-49bb-b3e8-d2304e8fa4df" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_3450c911-dbe8-49bb-b3e8-d2304e8fa4df" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f9a08d3-df1b-4305-8308-6d7e688ddfe0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f9a08d3-df1b-4305-8308-6d7e688ddfe0" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_190c84df-5b53-4e80-9133-5baef77147ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_190c84df-5b53-4e80-9133-5baef77147ff" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_346ed42b-c8a0-4531-bc98-8d0968c5a3c6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_346ed42b-c8a0-4531-bc98-8d0968c5a3c6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_9fd378c1-f196-401c-8dbd-811649e76031" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_9fd378c1-f196-401c-8dbd-811649e76031" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7583e395-ffce-4897-94f8-dfdbef3bde3f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7583e395-ffce-4897-94f8-dfdbef3bde3f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabCo.Ltd.Member_d713a525-ce14-4f50-bfa8-6b562d5d1720" xlink:href="cgnx-20221231.xsd#cgnx_SualabCo.Ltd.Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:to="loc_cgnx_SualabCo.Ltd.Member_d713a525-ce14-4f50-bfa8-6b562d5d1720" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EnShapeGmbHMember_61be58a0-e1e7-46be-8890-6ca1b0220c73" xlink:href="cgnx-20221231.xsd#cgnx_EnShapeGmbHMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:to="loc_cgnx_EnShapeGmbHMember_61be58a0-e1e7-46be-8890-6ca1b0220c73" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_59a226c2-7393-45a7-b255-d8e316a16166_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_59a226c2-7393-45a7-b255-d8e316a16166_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_b56ecd15-75cd-41b0-93c8-f1d88c2369c3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_b56ecd15-75cd-41b0-93c8-f1d88c2369c3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_ec6427f2-4478-49a0-bd32-5bc4dbc1dc46" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_ec6427f2-4478-49a0-bd32-5bc4dbc1dc46" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_b3cb2919-418a-4cf2-829e-c0f3457c2f14" xlink:href="cgnx-20221231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:to="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_b3cb2919-418a-4cf2-829e-c0f3457c2f14" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_273194ce-a9e1-4daa-a81c-02a010f8d581_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_273194ce-a9e1-4daa-a81c-02a010f8d581_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_61b85442-fa7a-483c-9b6b-14940771d1a5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_61b85442-fa7a-483c-9b6b-14940771d1a5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_cc3bed67-30d3-447d-a94e-f866ccd39371" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_61b85442-fa7a-483c-9b6b-14940771d1a5" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_cc3bed67-30d3-447d-a94e-f866ccd39371" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#DerivativeInstrumentsAdditionalDetailsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended" id="i28eb37d6ad2a4cd7b555c5b5bddb9c3d_DerivativeInstrumentsAdditionalDetailsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_84a793a4-21c2-4cfe-8597-5987248efd0c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_07649330-bb6e-4fe4-a647-8925f739edbd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_84a793a4-21c2-4cfe-8597-5987248efd0c" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_07649330-bb6e-4fe4-a647-8925f739edbd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_84a793a4-21c2-4cfe-8597-5987248efd0c" xlink:to="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:to="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_604f37d5-5c5d-41ee-a265-51ef65900366_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:to="loc_us-gaap_HedgingDesignationDomain_604f37d5-5c5d-41ee-a265-51ef65900366_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_fa5866fa-562f-4ef4-bcfe-6c1288d57498" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:to="loc_us-gaap_HedgingDesignationDomain_fa5866fa-562f-4ef4-bcfe-6c1288d57498" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_7ced25ba-97c8-403b-afbb-c75e426ddeeb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_fa5866fa-562f-4ef4-bcfe-6c1288d57498" xlink:to="loc_us-gaap_NondesignatedMember_7ced25ba-97c8-403b-afbb-c75e426ddeeb" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended" id="i00173b0964be4e8fbeb1a30e4297bf0d_DerivativeInstrumentsOutstandingForwardContractsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_b792788e-5661-460e-b7e8-e17306a00f10" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_f6fe3706-7af5-4062-9e7c-e3149163ddad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_b792788e-5661-460e-b7e8-e17306a00f10" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_f6fe3706-7af5-4062-9e7c-e3149163ddad" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_b792788e-5661-460e-b7e8-e17306a00f10" xlink:to="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:to="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_1112b4fd-f7db-4b09-aaf9-bf57be70f098_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:to="loc_us-gaap_HedgingDesignationDomain_1112b4fd-f7db-4b09-aaf9-bf57be70f098_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_7f19238c-ccd8-4178-9f34-ace59f4cf44e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:to="loc_us-gaap_HedgingDesignationDomain_7f19238c-ccd8-4178-9f34-ace59f4cf44e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_95fd1af0-d499-420c-a119-bed785a2882c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_7f19238c-ccd8-4178-9f34-ace59f4cf44e" xlink:to="loc_us-gaap_NondesignatedMember_95fd1af0-d499-420c-a119-bed785a2882c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_CurrencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:to="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf_default" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:to="loc_currency_AllCurrenciesDomain_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:to="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_1151eb39-1296-4b84-90b3-d9c62a979dd7" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_EUR"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_EUR_1151eb39-1296-4b84-90b3-d9c62a979dd7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_c23b80c0-0b08-4860-8907-11b4d72acd07" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_JPY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_JPY_c23b80c0-0b08-4860-8907-11b4d72acd07" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_f75dcc42-f4bc-471f-9365-dec65e96ece7" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_MXN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_MXN_f75dcc42-f4bc-471f-9365-dec65e96ece7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_80318a36-9a4b-4abd-9065-b5884053b9ae" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_GBP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_GBP_80318a36-9a4b-4abd-9065-b5884053b9ae" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_7d36d9b6-134c-4425-82ab-2caea8b35f0e" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_HUF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_HUF_7d36d9b6-134c-4425-82ab-2caea8b35f0e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_0a7e4e83-f713-4af3-9678-9404c77e807b" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_CAD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_CAD_0a7e4e83-f713-4af3-9678-9404c77e807b" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY_93674462-9a6e-4bf6-bcec-c6bec3df10f6" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_CNY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_CNY_93674462-9a6e-4bf6-bcec-c6bec3df10f6" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF_0978cffb-e5c3-427a-b660-7cdb22d01790" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_CHF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_CHF_0978cffb-e5c3-427a-b660-7cdb22d01790" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended" id="i70437736625f4680a38d34017a1db066_DerivativeInstrumentsBalanceSheetLocationDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_649a1030-b3f8-407b-a8ac-d51ee2bd461c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:to="loc_us-gaap_DerivativeAssets_649a1030-b3f8-407b-a8ac-d51ee2bd461c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_61149d60-9085-4fcb-b04c-7f8cd6e5aaab" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:to="loc_us-gaap_DerivativeLiabilities_61149d60-9085-4fcb-b04c-7f8cd6e5aaab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:to="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_43cdb95a-4def-4aad-bc0f-af95f64e5cad_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:to="loc_us-gaap_HedgingDesignationDomain_43cdb95a-4def-4aad-bc0f-af95f64e5cad_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_c568489b-2f9c-4e0c-9d95-7f0bf4621179" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:to="loc_us-gaap_HedgingDesignationDomain_c568489b-2f9c-4e0c-9d95-7f0bf4621179" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_8d6d7f09-5d2e-4699-a24c-82f4b84118de" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_c568489b-2f9c-4e0c-9d95-7f0bf4621179" xlink:to="loc_us-gaap_NondesignatedMember_8d6d7f09-5d2e-4699-a24c-82f4b84118de" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="extended" id="id01fa7968c4140cfa77bf2d1383054dc_DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b62e200b-6a31-4ce3-8efe-1dd75ba8b4b0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_6d68b989-8ca5-4081-98fa-9dc8273bdadb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b62e200b-6a31-4ce3-8efe-1dd75ba8b4b0" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_6d68b989-8ca5-4081-98fa-9dc8273bdadb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b62e200b-6a31-4ce3-8efe-1dd75ba8b4b0" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:to="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_844f55c9-f7d3-4955-ae35-564409f3e349_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:to="loc_us-gaap_HedgingDesignationDomain_844f55c9-f7d3-4955-ae35-564409f3e349_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_5dfc2bbd-0bb4-4885-804e-fbcc87d7804d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:to="loc_us-gaap_HedgingDesignationDomain_5dfc2bbd-0bb4-4885-804e-fbcc87d7804d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_04360293-61c8-4578-9b0b-2202d6913314" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_5dfc2bbd-0bb4-4885-804e-fbcc87d7804d" xlink:to="loc_us-gaap_NondesignatedMember_04360293-61c8-4578-9b0b-2202d6913314" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RevenueRecognitionDisaggregationbyGeographyandTypeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="extended" id="if62f0c242bbf4ed88b5a04b45f4f88bc_RevenueRecognitionDisaggregationbyGeographyandTypeDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_365066f7-daaf-4cd1-996c-b2a37496e21b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d2f25d5-5119-42a7-bb15-da3236285799" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_365066f7-daaf-4cd1-996c-b2a37496e21b" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d2f25d5-5119-42a7-bb15-da3236285799" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_365066f7-daaf-4cd1-996c-b2a37496e21b" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:to="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_42754672-4715-4987-979e-8ad6f58a33f0_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:to="loc_srt_SegmentGeographicalDomain_42754672-4715-4987-979e-8ad6f58a33f0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:to="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_36e6c581-8fb2-4af9-a78d-8def9ed17399" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_srt_AmericasMember_36e6c581-8fb2-4af9-a78d-8def9ed17399" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_298294e9-99e0-42da-9f6a-daba31a990a7" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_srt_EuropeMember_298294e9-99e0-42da-9f6a-daba31a990a7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_d34057cb-ef7f-4669-b316-4872ed572aa5" xlink:href="cgnx-20221231.xsd#cgnx_GreaterChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_cgnx_GreaterChinaMember_d34057cb-ef7f-4669-b316-4872ed572aa5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember_c40f2e36-6412-443c-89d4-0b7b5aaeb132" xlink:href="cgnx-20221231.xsd#cgnx_OtherAsiaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_cgnx_OtherAsiaMember_c40f2e36-6412-443c-89d4-0b7b5aaeb132" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:to="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_77a9bcdc-4e86-41dd-8338-46e9774b9f03_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:to="loc_srt_ProductsAndServicesDomain_77a9bcdc-4e86-41dd-8338-46e9774b9f03_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:to="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember_27d6ab65-862d-40d8-9e14-5506a609a420" xlink:href="cgnx-20221231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:to="loc_cgnx_StandardProductandServicesMember_27d6ab65-862d-40d8-9e14-5506a609a420" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_b074da61-7182-41da-86ed-6e526a0f6875" xlink:href="cgnx-20221231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_b074da61-7182-41da-86ed-6e526a0f6875" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#ShareholdersEquityAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended" id="ia98ad1ff90454daba6c85a22de52f5b5_ShareholdersEquityAdditionalInformationDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_5b0ff676-05c3-43cc-afef-ce0b07b38697" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_5b0ff676-05c3-43cc-afef-ce0b07b38697" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9a40ed9f-2c5f-4c25-96a8-b40ada6e141e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9a40ed9f-2c5f-4c25-96a8-b40ada6e141e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_48568ff0-3095-4496-b5ec-22227a9d3401" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_48568ff0-3095-4496-b5ec-22227a9d3401" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_480e0451-fd95-41b0-a9f6-79a10db337e6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_480e0451-fd95-41b0-a9f6-79a10db337e6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_a9ef6d4e-7a68-4f44-b174-a9587e6019a5" xlink:href="cgnx-20221231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_a9ef6d4e-7a68-4f44-b174-a9587e6019a5" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_eaf33463-03d1-488b-be69-2e85a7ab1791" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_eaf33463-03d1-488b-be69-2e85a7ab1791" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_6fed7b08-0043-43c4-b6de-6a3add72f9d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_6fed7b08-0043-43c4-b6de-6a3add72f9d8" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_80ff9645-bac2-42c5-9be5-3fd2ae2a9a64" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_80ff9645-bac2-42c5-9be5-3fd2ae2a9a64" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_6eb485c0-96ca-426d-8afb-8a94587293ed" xlink:href="cgnx-20221231.xsd#cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_6eb485c0-96ca-426d-8afb-8a94587293ed" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_a8737023-d8f8-4e44-8074-37f520ae81a4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_a8737023-d8f8-4e44-8074-37f520ae81a4" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_6665c467-d33c-4927-9d39-d059afb51983" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_6665c467-d33c-4927-9d39-d059afb51983" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_6104f9df-3586-4ba6-8cb5-1bcdf2390e8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_6104f9df-3586-4ba6-8cb5-1bcdf2390e8b" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4f7e6088-747f-47cb-8c3c-30dd0dda024e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4f7e6088-747f-47cb-8c3c-30dd0dda024e" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareDeclared_488edb6d-b315-46d3-bfe5-b1c6b28aa19d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareDeclared"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockDividendsPerShareDeclared_488edb6d-b315-46d3-bfe5-b1c6b28aa19d" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends_009d7215-42fe-4b33-9fcf-b20111364f17" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfDividends"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_PaymentsOfDividends_009d7215-42fe-4b33-9fcf-b20111364f17" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_c2c18409-146f-4b9b-a001-4af550a4385d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_c2c18409-146f-4b9b-a001-4af550a4385d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_03c6649a-8803-4ac3-a8b5-5dd35c90a33f" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_03c6649a-8803-4ac3-a8b5-5dd35c90a33f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_765325df-6510-4590-9ecb-cc3477ed4f9c" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_765325df-6510-4590-9ecb-cc3477ed4f9c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member_49e2edae-3aef-4426-a7d0-3baec5f709f4" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:to="loc_cgnx_RepurchaseProgramMarch2022Member_49e2edae-3aef-4426-a7d0-3baec5f709f4" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended" id="i5c034d321b1b414f9b662ce6e6c6cb64_StockBasedCompensationExpenseAdditionalInformationDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b2861004-21de-4229-8a62-46f031ee7ccb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b2861004-21de-4229-8a62-46f031ee7ccb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_c8e050bd-f80d-4da9-8040-e07054377b8d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_c8e050bd-f80d-4da9-8040-e07054377b8d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_4029aa9d-2e65-471f-978f-411deaabbee2" xlink:href="cgnx-20221231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_4029aa9d-2e65-471f-978f-411deaabbee2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_be09f9a6-bf82-43e3-9600-426b395599f6" xlink:href="cgnx-20221231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_be09f9a6-bf82-43e3-9600-426b395599f6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_1f9630df-0d4b-4fc0-96a2-11546eab3f85" xlink:href="cgnx-20221231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_1f9630df-0d4b-4fc0-96a2-11546eab3f85" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_9ea43990-4faa-4cff-978e-a8c4a69d9369" xlink:href="cgnx-20221231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_9ea43990-4faa-4cff-978e-a8c4a69d9369" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_ee5d2caf-c1e9-4a5b-9480-4e143dffd14f" xlink:href="cgnx-20221231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_ee5d2caf-c1e9-4a5b-9480-4e143dffd14f" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_85e2dabe-ec38-4122-9aa5-4d7c150db2ad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_85e2dabe-ec38-4122-9aa5-4d7c150db2ad" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_22d7537d-1d5a-464a-95aa-8109c04aa8cc" xlink:href="cgnx-20221231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_22d7537d-1d5a-464a-95aa-8109c04aa8cc" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_52bba99a-a0f3-4551-8749-cf6267423476" xlink:href="cgnx-20221231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_52bba99a-a0f3-4551-8749-cf6267423476" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_b50f6a75-f17e-48da-b4f1-0a207d70e78e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_b50f6a75-f17e-48da-b4f1-0a207d70e78e" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2e463b0f-927d-4b84-9309-caf7c6eb589b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2e463b0f-927d-4b84-9309-caf7c6eb589b" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_9059533f-b71c-4c14-afc7-77896707c4e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_9059533f-b71c-4c14-afc7-77896707c4e4" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_a016adde-f32d-4f83-8c6e-1eb4114ffb3c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_a016adde-f32d-4f83-8c6e-1eb4114ffb3c" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_ba02bd8f-d7d9-45f2-9afa-067862e2639d" xlink:href="cgnx-20221231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_ba02bd8f-d7d9-45f2-9afa-067862e2639d" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_595cd951-6c5a-469e-adde-05077f8ae0b6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_595cd951-6c5a-469e-adde-05077f8ae0b6" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4077cdd0-ed05-436d-9767-5badb627d9d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4077cdd0-ed05-436d-9767-5badb627d9d8" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_5bc930f4-0015-400a-ae5a-886149439976" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensation_5bc930f4-0015-400a-ae5a-886149439976" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:to="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_fe7e3c08-d453-4cf4-b200-e7af728c2dab_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:to="loc_srt_RangeMember_fe7e3c08-d453-4cf4-b200-e7af728c2dab_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:to="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_b74b0193-53d5-40d1-aca5-7b7a485cd739" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:to="loc_srt_MinimumMember_b74b0193-53d5-40d1-aca5-7b7a485cd739" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_673beaf5-5974-47f3-9a80-ce6eb9c58450" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:to="loc_srt_MaximumMember_673beaf5-5974-47f3-9a80-ce6eb9c58450" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:to="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b200ff94-c4a0-4065-9de5-696f32b15c35_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b200ff94-c4a0-4065-9de5-696f32b15c35_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_bed3f92f-80e3-4536-85f5-9fca9bdb74c3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:to="loc_us-gaap_EmployeeStockOptionMember_bed3f92f-80e3-4536-85f5-9fca9bdb74c3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_daed7056-59ea-429b-8854-25f2769765e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:to="loc_us-gaap_PerformanceSharesMember_daed7056-59ea-429b-8854-25f2769765e4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_da82c2ad-5f12-4787-924f-61b0b81b0dbe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_da82c2ad-5f12-4787-924f-61b0b81b0dbe" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="extended" id="ic8102d32f8db43beb14b1e16162b4d2c_StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_fbd80494-aef2-43f6-bb2f-3e7f15ac706f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_fbd80494-aef2-43f6-bb2f-3e7f15ac706f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_db860f1e-ff52-412a-a3ae-c3d18d1f4243" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_db860f1e-ff52-412a-a3ae-c3d18d1f4243" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_df98ba14-844a-4572-94df-a40fbdbe1146" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_df98ba14-844a-4572-94df-a40fbdbe1146" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_61b7f794-85dc-4ac9-bbb1-cd5cf0626092" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_61b7f794-85dc-4ac9-bbb1-cd5cf0626092" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:to="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_87c89f06-8e0d-4463-a183-205f14e8e99f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_87c89f06-8e0d-4463-a183-205f14e8e99f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_35326f0b-77a0-4425-b55a-1bf6be9a137d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:to="loc_us-gaap_EmployeeStockOptionMember_35326f0b-77a0-4425-b55a-1bf6be9a137d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_30117d26-21fd-4b2d-8803-25bfb5979a1d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:to="loc_us-gaap_RestrictedStockMember_30117d26-21fd-4b2d-8803-25bfb5979a1d" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="extended" id="id8eab59b235d4135a6e0ea0c9c7fc24f_StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_c0f96958-4712-4104-b228-830b85f184be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_c0f96958-4712-4104-b228-830b85f184be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_1e239ded-7e62-4c38-90e8-e13fa221b3bb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_1e239ded-7e62-4c38-90e8-e13fa221b3bb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b5ce3e77-27a2-4d59-804b-5f2f4b95ae6d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b5ce3e77-27a2-4d59-804b-5f2f4b95ae6d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4f0aeab3-2401-4639-8d96-49be490788b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4f0aeab3-2401-4639-8d96-49be490788b8" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_b82619e2-90c0-47b6-bdaa-edd2799a9291" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_10033e94-baca-4607-82fd-74d76de3af00" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_10033e94-baca-4607-82fd-74d76de3af00" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_5e8decf4-53d4-424b-8049-5f7f9e311cfb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_5e8decf4-53d4-424b-8049-5f7f9e311cfb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_14b6cf21-ae34-4924-a3a4-75ca695220bb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_14b6cf21-ae34-4924-a3a4-75ca695220bb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9810ca32-7341-4f13-94bf-9f0d758c05e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9810ca32-7341-4f13-94bf-9f0d758c05e8" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_bab406d1-2f47-470d-a7ca-038b82d9aa20" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:to="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc30c77a-89b5-4cdc-999d-7e989c4db450_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_dc30c77a-89b5-4cdc-999d-7e989c4db450_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2657bdb5-0bf1-4d27-af89-213e9ba3550f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2657bdb5-0bf1-4d27-af89-213e9ba3550f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_4e3632b6-b06a-4de5-b4d1-6121590b7cb4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2657bdb5-0bf1-4d27-af89-213e9ba3550f" xlink:to="loc_us-gaap_RestrictedStockMember_4e3632b6-b06a-4de5-b4d1-6121590b7cb4" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended" id="ibf434a9cbb944c38ab764984b57cf4fe_StockBasedCompensationExpenseStockBasedCompensationExpenseDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_07b80345-4906-44bd-a652-2cfafd5a592a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_07b80345-4906-44bd-a652-2cfafd5a592a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f9dc9a47-2cae-475f-8580-e719c8c33ffb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f9dc9a47-2cae-475f-8580-e719c8c33ffb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_957b18ee-279c-48b0-9a8d-52c5e7f785da" xlink:href="cgnx-20221231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_957b18ee-279c-48b0-9a8d-52c5e7f785da" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_1f85872d-43e3-4e51-ab66-cf2682575f82_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_1f85872d-43e3-4e51-ab66-cf2682575f82_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember_f005b50a-3e0d-4ef3-916a-edf585e84cd7" xlink:href="cgnx-20221231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:to="loc_cgnx_ProductCostOfRevenueMember_f005b50a-3e0d-4ef3-916a-edf585e84cd7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_71f2039e-ddbe-45f0-86a1-1038625b9941" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_71f2039e-ddbe-45f0-86a1-1038625b9941" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_5817d2fb-18b1-4256-9820-abfc5fbacd91" xlink:href="cgnx-20221231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_5817d2fb-18b1-4256-9820-abfc5fbacd91" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="extended" id="i095e2324fe4d4320973f955e1380d426_StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4f594c07-b577-4d95-aff5-57c0aabcd7e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4f594c07-b577-4d95-aff5-57c0aabcd7e8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ec03e02b-6577-441f-971a-433903695fe3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ec03e02b-6577-441f-971a-433903695fe3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b12c3b39-1cf2-46e8-a203-322889cd786c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b12c3b39-1cf2-46e8-a203-322889cd786c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_e1ea0dbd-18e2-4ecf-ad6c-f5792531ac91" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_e1ea0dbd-18e2-4ecf-ad6c-f5792531ac91" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_43eb16f5-ae95-467e-9667-5f014fdee955" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_43eb16f5-ae95-467e-9667-5f014fdee955" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_3ebfec8e-b5d5-43ed-9211-0f6cb66fa683" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_3ebfec8e-b5d5-43ed-9211-0f6cb66fa683" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_371e98eb-f93f-4a0f-b589-7c78edb63d06" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_371e98eb-f93f-4a0f-b589-7c78edb63d06" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_f9d2e87a-5586-4042-8b47-fbb64926bdaa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_f9d2e87a-5586-4042-8b47-fbb64926bdaa" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_db6ca318-8bc7-46ff-88ae-1bc0b1a30b86" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d43cb9d7-3ec5-432e-9253-be38613b9416" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:to="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9503c482-aa34-4649-ba85-5464c62ebb52_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_9503c482-aa34-4649-ba85-5464c62ebb52_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b044902c-a3dc-4037-b6ec-7bc77bd401a2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b044902c-a3dc-4037-b6ec-7bc77bd401a2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_9781b56b-3d44-4824-a21a-fe8feb8a2100" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b044902c-a3dc-4037-b6ec-7bc77bd401a2" xlink:to="loc_us-gaap_PerformanceSharesMember_9781b56b-3d44-4824-a21a-fe8feb8a2100" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#IncomeTaxesAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="extended" id="i776024a34ea04de7b94c7d0e6ac2e19b_IncomeTaxesAdditionalInformationDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_5ccead25-f21d-44d0-9296-7da2b45c300b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_5ccead25-f21d-44d0-9296-7da2b45c300b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_5ce3469f-6a6a-4464-8c6b-b7afb6427966" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_5ce3469f-6a6a-4464-8c6b-b7afb6427966" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_800bae66-adc1-40b9-9fb4-1bb6a0f2d1ef" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_800bae66-adc1-40b9-9fb4-1bb6a0f2d1ef" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_e3cdb1c8-5600-4f22-b95a-fe0929ff6490" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_e3cdb1c8-5600-4f22-b95a-fe0929ff6490" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_e52b597e-8d61-4751-88ff-53a23adc7683" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_e52b597e-8d61-4751-88ff-53a23adc7683" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges_5654fa41-3946-4301-acb5-0bf84849767c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges_5654fa41-3946-4301-acb5-0bf84849767c" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_4178df09-ac64-4759-999f-cf6a25f49dc6" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_4178df09-ac64-4759-999f-cf6a25f49dc6" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_a6bf907f-18e1-4b57-86a3-54f8fea4666e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_a6bf907f-18e1-4b57-86a3-54f8fea4666e" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount_69b326d2-e0c0-4235-b054-a9facc1e2c81" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount_69b326d2-e0c0-4235-b054-a9facc1e2c81" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_5a7c0e8c-5fa4-42a9-87d7-ee642d037df2" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_5a7c0e8c-5fa4-42a9-87d7-ee642d037df2" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_e8dfe556-72b9-4c98-b0d8-43c0f1b4ec90" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_e8dfe556-72b9-4c98-b0d8-43c0f1b4ec90" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpense_a93ac7f9-0ccc-4370-8a85-af25c27e076e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpense_a93ac7f9-0ccc-4370-8a85-af25c27e076e" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign_642c9692-7fe7-429a-87e0-141b4b28619a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationTaxSettlementsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign_642c9692-7fe7-429a-87e0-141b4b28619a" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross_e580e421-31ae-48e2-b389-c9785aa71866" xlink:href="cgnx-20221231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGross_e580e421-31ae-48e2-b389-c9785aa71866" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3aabf1ad-df73-4d21-bbb8-ba9beb315042" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3aabf1ad-df73-4d21-bbb8-ba9beb315042" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_21451787-4395-450b-96a7-9d6a2a60a3fe" xlink:href="cgnx-20221231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_21451787-4395-450b-96a7-9d6a2a60a3fe" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_38a0674c-b815-4fed-a5bf-3bd2f1014e6b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_38a0674c-b815-4fed-a5bf-3bd2f1014e6b" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_a5c88086-0c55-44fa-9ab8-b118d4fa723a" xlink:href="cgnx-20221231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_a5c88086-0c55-44fa-9ab8-b118d4fa723a" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_f811a7a3-d30f-4cf7-80d8-8bf1638e82ca" xlink:href="cgnx-20221231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_f811a7a3-d30f-4cf7-80d8-8bf1638e82ca" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_0b41b7e2-8f2a-4ccb-8c38-c6b5c7ade2ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_0b41b7e2-8f2a-4ccb-8c38-c6b5c7ade2ba" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_6dd13d51-182a-4850-b705-c3946d2385d7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_6dd13d51-182a-4850-b705-c3946d2385d7" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_8b9835d7-90eb-4fae-ab0f-5fc36acb4ab3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_8b9835d7-90eb-4fae-ab0f-5fc36acb4ab3" xlink:type="arc" order="21"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_9498b4f9-571e-4e44-89cd-86f0084a59e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_9498b4f9-571e-4e44-89cd-86f0084a59e3" xlink:type="arc" order="22"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_989a7f76-4885-49a3-b9c1-9d260f318af3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_989a7f76-4885-49a3-b9c1-9d260f318af3" xlink:type="arc" order="23"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_0d91de1d-5098-4409-96f9-af88c9be6876" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_0d91de1d-5098-4409-96f9-af88c9be6876" xlink:type="arc" order="24"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_f58312d7-a8b7-4365-a87c-0cf378ca293e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_f58312d7-a8b7-4365-a87c-0cf378ca293e" xlink:type="arc" order="25"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_dfe4177d-70a7-47fa-a34a-76156daa88a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_dfe4177d-70a7-47fa-a34a-76156daa88a6" xlink:type="arc" order="26"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_6023b198-f129-44ec-9fc6-cd619ae576c9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_6023b198-f129-44ec-9fc6-cd619ae576c9" xlink:type="arc" order="27"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_c857e24a-5406-443e-bbe1-a9514a87f3aa" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_c857e24a-5406-443e-bbe1-a9514a87f3aa" xlink:type="arc" order="28"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_3300f2b0-63a9-4c5b-bb16-0f679c50d5dc" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_3300f2b0-63a9-4c5b-bb16-0f679c50d5dc" xlink:type="arc" order="29"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsDomain_3ebed65e-16aa-477d-ae06-669a8ad0ba9c_default" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:to="loc_cgnx_DiscreteTaxItemsDomain_3ebed65e-16aa-477d-ae06-669a8ad0ba9c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:to="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_36b20cc5-4402-411c-8770-9f9d221b943b" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_36b20cc5-4402-411c-8770-9f9d221b943b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseOtherTaxMattersMember_8482e25d-4be4-4811-8374-ee793b66a0ad" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseOtherTaxMattersMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_DiscreteTaxExpenseOtherTaxMattersMember_8482e25d-4be4-4811-8374-ee793b66a0ad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember_eee20148-4c3e-4f6a-bdf5-8d2c71e57abb" xlink:href="cgnx-20221231.xsd#cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember_eee20148-4c3e-4f6a-bdf5-8d2c71e57abb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_8d162471-be7b-4a52-9710-1e84b5f6e782" xlink:href="cgnx-20221231.xsd#cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_8d162471-be7b-4a52-9710-1e84b5f6e782" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_1c4952fd-6002-496b-8f54-42531e2dcc94" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_1c4952fd-6002-496b-8f54-42531e2dcc94" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_e9beb5f0-0d52-48c4-ba70-653e93e0dbad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:to="loc_us-gaap_ForeignCountryMember_e9beb5f0-0d52-48c4-ba70-653e93e0dbad" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_b14d92d8-d11e-464c-ab84-f15a0e8f7bdb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DomesticCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:to="loc_us-gaap_DomesticCountryMember_b14d92d8-d11e-464c-ab84-f15a0e8f7bdb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_dc2ac55e-624e-4dd5-bbc1-e724b805db85_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_dc2ac55e-624e-4dd5-bbc1-e724b805db85_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_ad394de6-3c30-46de-8d78-d24411df9f67" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_ad394de6-3c30-46de-8d78-d24411df9f67" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_e37b7218-c361-4835-ae66-c79bb23ac733" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_e37b7218-c361-4835-ae66-c79bb23ac733" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP_af3c0350-605e-4cb7-b58a-1ff662876cd1" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_KP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:to="loc_country_KP_af3c0350-605e-4cb7-b58a-1ff662876cd1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_11198a11-ee23-4922-b430-07e42e9af544_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_11198a11-ee23-4922-b430-07e42e9af544_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember_e1bce7e4-e997-4d16-a964-08ac3076d9ae" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:to="loc_us-gaap_ResearchMember_e1bce7e4-e997-4d16-a964-08ac3076d9ae" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_4066c504-73c5-425c-8e39-cdd005ae62f3" xlink:href="cgnx-20221231.xsd#cgnx_StateResearchAndExperimentationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:to="loc_cgnx_StateResearchAndExperimentationMember_4066c504-73c5-425c-8e39-cdd005ae62f3" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#WeightedAverageSharesAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended" id="i67209753f50e48aaad31ce492bbfe63b_WeightedAverageSharesAdditionalInformationDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_574b8c25-f8ec-48d3-a1e2-e36a038bb4a1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_45a40de0-9fb9-4fd1-bd4e-05a411c978e2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_574b8c25-f8ec-48d3-a1e2-e36a038bb4a1" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_45a40de0-9fb9-4fd1-bd4e-05a411c978e2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_574b8c25-f8ec-48d3-a1e2-e36a038bb4a1" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_92ae856e-7389-41f4-b4c8-f4b94ed3e0be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:to="loc_us-gaap_EmployeeStockOptionMember_92ae856e-7389-41f4-b4c8-f4b94ed3e0be" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_360a9e27-db58-4896-88ba-d75aa9b3ef6f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:to="loc_us-gaap_RestrictedStockMember_360a9e27-db58-4896-88ba-d75aa9b3ef6f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_80eabff3-72ab-40f6-85dd-32f3f38181c2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:to="loc_us-gaap_PerformanceSharesMember_80eabff3-72ab-40f6-85dd-32f3f38181c2" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SegmentandGeographicInformationAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="extended" id="i629237dd23fe49f5bd600e6e9379e9ed_SegmentandGeographicInformationAdditionalInformationDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_0285480d-8653-4bab-a206-ecf5568ae37f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:to="loc_us-gaap_NumberOfReportableSegments_0285480d-8653-4bab-a206-ecf5568ae37f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_c0844df6-c08c-4da2-9bcc-0c0c5398d088" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_c0844df6-c08c-4da2-9bcc-0c0c5398d088" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:to="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c3dd5053-587c-4f39-8bae-83ef302eeecc_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_c3dd5053-587c-4f39-8bae-83ef302eeecc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_6c46bd30-9c95-4ea9-bae1-e29e2f99cc8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:to="loc_us-gaap_SalesRevenueNetMember_6c46bd30-9c95-4ea9-bae1-e29e2f99cc8b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_84c97c92-0802-4e93-9ca7-cdb3235c0452" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:to="loc_us-gaap_AccountsReceivableMember_84c97c92-0802-4e93-9ca7-cdb3235c0452" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_9d769a6b-40ae-4a86-92d4-230dce24d93a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_9d769a6b-40ae-4a86-92d4-230dce24d93a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_5b479687-9c32-40a5-b352-bc922f4a8011" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_5b479687-9c32-40a5-b352-bc922f4a8011" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_a771542c-f774-4074-9fd5-37b5ae3d9f6d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_5b479687-9c32-40a5-b352-bc922f4a8011" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_a771542c-f774-4074-9fd5-37b5ae3d9f6d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_592f9272-1419-40f3-89e5-62d46131fd2d_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:to="loc_srt_NameOfMajorCustomerDomain_592f9272-1419-40f3-89e5-62d46131fd2d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:to="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member_70ded0a4-b3f2-479f-809c-f9b0e3aa5163" xlink:href="cgnx-20221231.xsd#cgnx_Customer2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:to="loc_cgnx_Customer2Member_70ded0a4-b3f2-479f-809c-f9b0e3aa5163" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member_2e37784f-4e72-4f7c-8281-131394d4263a" xlink:href="cgnx-20221231.xsd#cgnx_Customer1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:to="loc_cgnx_Customer1Member_2e37784f-4e72-4f7c-8281-131394d4263a" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="extended" id="i6c333277c5e642b28dadfa9b3e135263_SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4c7fc9de-b3b1-4e2e-bf73-b5e8a95ba4ca" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4c7fc9de-b3b1-4e2e-bf73-b5e8a95ba4ca" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_1a9d0e36-4349-4d8c-82ec-6127d08a2bdd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:to="loc_us-gaap_NoncurrentAssets_1a9d0e36-4349-4d8c-82ec-6127d08a2bdd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:to="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_79d09e9a-67e6-4ea0-a13a-f92f22c2307d_default" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:to="loc_srt_SegmentGeographicalDomain_79d09e9a-67e6-4ea0-a13a-f92f22c2307d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:to="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_6c9937d4-e27f-430c-918e-60fbcb8079ad" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_country_US_6c9937d4-e27f-430c-918e-60fbcb8079ad" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_00e0289e-a20b-4f7f-841d-d05c57361a43" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_srt_EuropeMember_00e0289e-a20b-4f7f-841d-d05c57361a43" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_59075c37-2392-483d-8f93-6fc4b9f9d1ee" xlink:href="cgnx-20221231.xsd#cgnx_GreaterChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_cgnx_GreaterChinaMember_59075c37-2392-483d-8f93-6fc4b9f9d1ee" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember_ca01bf2e-90e9-4397-bb0e-53fa1530192d" xlink:href="cgnx-20221231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_cgnx_OtherGeographicAreaMember_ca01bf2e-90e9-4397-bb0e-53fa1530192d" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#BusinessAcquisitionsSualabCoLtdNarrativeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails" xlink:type="extended" id="idbc0864aa23b437b83c0acc899bc183f_BusinessAcquisitionsSualabCoLtdNarrativeDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_47f3bbdd-28f8-49f0-8fd0-416cd74681b9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_47f3bbdd-28f8-49f0-8fd0-416cd74681b9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_118d2243-9fa2-4942-8792-bf7bf5564875" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_118d2243-9fa2-4942-8792-bf7bf5564875" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForProceedsFromPreviousAcquisition_d1df9c76-1f38-4928-867a-56d025b6cc3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForProceedsFromPreviousAcquisition"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_PaymentsForProceedsFromPreviousAcquisition_d1df9c76-1f38-4928-867a-56d025b6cc3d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_e4cb07a7-fe80-415a-9948-c4e77f80f788" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_e4cb07a7-fe80-415a-9948-c4e77f80f788" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f3dab7d-df48-4f31-b7b9-42faa6e60c9b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f3dab7d-df48-4f31-b7b9-42faa6e60c9b" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_13e2fef1-e0a1-4bfc-87e5-b16391591be3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_13e2fef1-e0a1-4bfc-87e5-b16391591be3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_15da69d3-4a54-4b2a-82dd-99adcbbad4be_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_15da69d3-4a54-4b2a-82dd-99adcbbad4be_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_73c218d0-132f-472e-8918-ba298e685f7d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_73c218d0-132f-472e-8918-ba298e685f7d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabCo.Ltd.Member_91a61432-7cb4-41de-8b62-42aff22b784d" xlink:href="cgnx-20221231.xsd#cgnx_SualabCo.Ltd.Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_73c218d0-132f-472e-8918-ba298e685f7d" xlink:to="loc_cgnx_SualabCo.Ltd.Member_91a61432-7cb4-41de-8b62-42aff22b784d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_333dc687-8417-492f-ac8e-9e263f389afb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_333dc687-8417-492f-ac8e-9e263f389afb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_5907fa73-9684-4465-8477-a9e62a3989b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_5907fa73-9684-4465-8477-a9e62a3989b3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_a259f52d-7226-49bb-a7d4-1ff1bcda4853" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_a259f52d-7226-49bb-a7d4-1ff1bcda4853" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_afa36b24-6277-4fc3-9ab3-b8323271dc8a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_afa36b24-6277-4fc3-9ab3-b8323271dc8a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_15ccb157-89f2-4c93-ae55-272f23761401" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_15ccb157-89f2-4c93-ae55-272f23761401" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_e81d2c2b-d398-428f-b45a-2642f06c8e2b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_15ccb157-89f2-4c93-ae55-272f23761401" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_e81d2c2b-d398-428f-b45a-2642f06c8e2b" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="extended" id="i6f9de2dcf02a43589f4100bdf98441c6_RestructuringChargesScheduleofRestructuringandRelatedCostsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_4be31633-cbdd-45dd-868f-d4bf6cedc9d2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_9f7c47a0-7360-4f52-9d9d-4b4e97beb3b5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4be31633-cbdd-45dd-868f-d4bf6cedc9d2" xlink:to="loc_us-gaap_RestructuringCharges_9f7c47a0-7360-4f52-9d9d-4b4e97beb3b5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4be31633-cbdd-45dd-868f-d4bf6cedc9d2" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_40ce6737-dad0-4e05-a706-35a668d2a4f4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_40ce6737-dad0-4e05-a706-35a668d2a4f4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_0e7326c8-4f5c-431a-9ff2-4a6af32a98cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_0e7326c8-4f5c-431a-9ff2-4a6af32a98cb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_bb6f6643-436f-4c2c-aa14-1bbda06bbee3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:to="loc_us-gaap_ContractTerminationMember_bb6f6643-436f-4c2c-aa14-1bbda06bbee3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_82767e38-753a-4baf-975b-68e30839a53f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherRestructuringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:to="loc_us-gaap_OtherRestructuringMember_82767e38-753a-4baf-975b-68e30839a53f" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="extended" id="i84a546c6d49441538dc19e9fee2ca2c9_RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_e3d29902-8ea6-4918-bc67-c640d8c4bdc9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_e3d29902-8ea6-4918-bc67-c640d8c4bdc9" xlink:to="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_47c000df-46ac-47cc-9bff-7c2b90308148" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserve"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringReserve_47c000df-46ac-47cc-9bff-7c2b90308148" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_dc2fd2e3-8982-487b-9703-6d50379451bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringCharges_dc2fd2e3-8982-487b-9703-6d50379451bd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring_aa149a2b-0626-4b0a-a5ef-f640d61b258b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_PaymentsForRestructuring_aa149a2b-0626-4b0a-a5ef-f640d61b258b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment_307e2463-6420-4b8d-81ea-a4ad26520193" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringReserveTranslationAdjustment_307e2463-6420-4b8d-81ea-a4ad26520193" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_e4e2cc05-7a5a-4fe0-adc8-28851ca1239c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserve"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_e3d29902-8ea6-4918-bc67-c640d8c4bdc9" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_7a8d4bde-7407-4cab-a2f5-ac390d188cd4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_7a8d4bde-7407-4cab-a2f5-ac390d188cd4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_6f20d523-488e-49d3-9f04-f8cc6379ce37" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_6f20d523-488e-49d3-9f04-f8cc6379ce37" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesMember_1edda0a7-4101-450b-8dfc-5cc44319b078" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_6f20d523-488e-49d3-9f04-f8cc6379ce37" xlink:to="loc_us-gaap_AccruedLiabilitiesMember_1edda0a7-4101-450b-8dfc-5cc44319b078" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_e07a97f5-4938-4572-b57f-9b91b3158030_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_e07a97f5-4938-4572-b57f-9b91b3158030_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_bc206530-c319-411d-b44a-c4453a8d7b60" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_bc206530-c319-411d-b44a-c4453a8d7b60" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_21e52eac-c371-482b-ad93-f94cb4ee5fd1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:to="loc_us-gaap_ContractTerminationMember_21e52eac-c371-482b-ad93-f94cb4ee5fd1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_5db5a445-d717-4ba1-b831-f69e9f10f596" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherRestructuringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:to="loc_us-gaap_OtherRestructuringMember_5db5a445-d717-4ba1-b831-f69e9f10f596" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain_04a4ec04-64ad-4af4-b3e0-b12e5252d2af_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:to="loc_us-gaap_RestructuringPlanDomain_04a4ec04-64ad-4af4-b3e0-b12e5252d2af_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:to="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_May2020Member_f19d41b6-1eba-4c8f-8ee4-be7b0c3735f0" xlink:href="cgnx-20221231.xsd#cgnx_May2020Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:to="loc_cgnx_May2020Member_f19d41b6-1eba-4c8f-8ee4-be7b0c3735f0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_December2022Member_3fcba0c9-8cac-4ae3-b2bf-0e802af2eefe" xlink:href="cgnx-20221231.xsd#cgnx_December2022Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:to="loc_cgnx_December2022Member_3fcba0c9-8cac-4ae3-b2bf-0e802af2eefe" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#SubsequentEventsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended" id="ieabec39a9b5c4b2aa076e6affd345d1d_SubsequentEventsDetails">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_6203e053-ed20-43ca-a2af-ef0dcad252f3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_6203e053-ed20-43ca-a2af-ef0dcad252f3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_e6b7ff3d-8ea8-46c4-9954-014c8f88a812" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_e6b7ff3d-8ea8-46c4-9954-014c8f88a812" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_663d0610-51ea-4d3b-851f-5ad2c745acf7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_663d0610-51ea-4d3b-851f-5ad2c745acf7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_b7ae3107-ea13-4772-9a3f-5d48b0d94c03_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_b7ae3107-ea13-4772-9a3f-5d48b0d94c03_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_58cf99eb-bad6-414e-b40d-9cdb73691ead" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_58cf99eb-bad6-414e-b40d-9cdb73691ead" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_de368f5a-5e39-48b5-829c-7fc0f29ed4c7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_58cf99eb-bad6-414e-b40d-9cdb73691ead" xlink:to="loc_us-gaap_SubsequentEventMember_de368f5a-5e39-48b5-829c-7fc0f29ed4c7" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="simple" xlink:href="cgnx-20221231.xsd#ScheduleIIValuationandQualifyingAccountsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="extended" id="i55271368b6294d5490cf405bacbe7567_ScheduleIIValuationandQualifyingAccountsDetail">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_a708f88e-cc41-4465-abb0-a9466ce70309" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_a708f88e-cc41-4465-abb0-a9466ce70309" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_83687bdb-eb9a-47a8-ad57-79150536743e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_83687bdb-eb9a-47a8-ad57-79150536743e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_cd5e3bd9-8205-422d-9cc1-ace2c2e6a4d2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_cd5e3bd9-8205-422d-9cc1-ace2c2e6a4d2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_ea1aff75-f965-417b-bc8c-4061d1dce162" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_ea1aff75-f965-417b-bc8c-4061d1dce162" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_f6cd21fe-7bf3-4a59-bef0-a7caf681e773" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_f6cd21fe-7bf3-4a59-bef0-a7caf681e773" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_9148408e-2aa2-4f55-98c9-c784989797b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_9148408e-2aa2-4f55-98c9-c784989797b3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_40663c82-1617-485c-bf65-881e3f5393ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_a708f88e-cc41-4465-abb0-a9466ce70309" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_eb21c223-796e-4b99-808a-ce849301eda1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_eb21c223-796e-4b99-808a-ce849301eda1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_2d98d99c-5477-411d-83b7-e1a9a798f1b2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_2d98d99c-5477-411d-83b7-e1a9a798f1b2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember_7b066c33-339a-4f93-96a4-685a94ed6362" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:to="loc_us-gaap_SalesReturnsAndAllowancesMember_7b066c33-339a-4f93-96a4-685a94ed6362" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_112fb2ce-4b10-474d-a8c8-3746446b5547" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_112fb2ce-4b10-474d-a8c8-3746446b5547" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:type="simple" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.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_IncomeStatementAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementAbstract" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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="1"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>11
<FILENAME>cgnx-20221231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2023 Workiva-->
<!--r:4dc635fe-3454-40d2-97d6-b433e40829c4,g:67c3b2b1-ab2e-47dc-be12-bcd61ff87e88-->
<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_us-gaap_BusinessAcquisitionAxis_eac38859-5216-433d-a82e-e17296f2c846_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_4c268f64-de5d-4c0d-af85-7bc4fe7103e6_terseLabel_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_OperatingLeaseLeaseIncome_064428d5-33ea-4f09-866a-d8cd98ca1ce2_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLeaseIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease income</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLeaseIncome_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLeaseIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Lease Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLeaseIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLeaseIncome" xlink:to="lab_us-gaap_OperatingLeaseLeaseIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_6798cea1-f36d-47c5-b503-e403ca74d6f6_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_70c0a4be-9174-4e8c-99d2-4c19dadda903_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ProvisionForDoubtfulAccounts_dbea21e1-bf8c-4278-9f8a-97b3f0b6bc6a_terseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_currency_GBP_936124e7-50e4-4981-a094-c3a6882bcf41_terseLabel_en-US" xlink:label="lab_currency_GBP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_DeferredIncomeTaxAssetsNet_de85bee5-0d10-4418-839e-7d2c57f5c3d7_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_PropertyPlantAndEquipmentAbstract_2f0878a6-d080-4e6e-86ae-5f350698b683_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_e791d3d4-da52-4f2b-9397-b224520feabb_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PreferredStockSharesOutstanding_63d6cee8-acf8-4d2f-ad81-2b1a4482958c_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_fdb21fe4-ddf1-46d2-a608-11d41a538be1_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_6bcf7653-c441-4216-80af-c69bbe41df52_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Carrying value of lease assets</link:label>
    <link:label id="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_label_en-US" xlink:label="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset</link:label>
    <link:label id="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:to="lab_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsForProceedsFromPreviousAcquisition_d2e76534-308d-4efe-a00f-84d67c889bf4_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForProceedsFromPreviousAcquisition" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Credit to goodwill</link:label>
    <link:label id="lab_us-gaap_PaymentsForProceedsFromPreviousAcquisition_label_en-US" xlink:label="lab_us-gaap_PaymentsForProceedsFromPreviousAcquisition" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments for (Proceeds from) Previous Acquisition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForProceedsFromPreviousAcquisition" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForProceedsFromPreviousAcquisition"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForProceedsFromPreviousAcquisition" xlink:to="lab_us-gaap_PaymentsForProceedsFromPreviousAcquisition" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_19a742dd-2c34-40ed-ad8b-5e112aba4059_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PaymentsOfDividendsCommonStock_8d07a241-34da-4479-9457-e814fbb19833_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_9a4f2b23-43ec-4c6a-9027-2618ac65762d_terseLabel_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_FairValueOfFinancialInstrumentsPolicy_3d59fabf-c27d-4312-859d-1508184c94dd_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_68a67b02-a4ec-46e7-b40a-ef2a3a711905_terseLabel_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_Depreciation_224d5eb9-90e6-4809-ba45-4d67e50a1fe9_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InvestmentDurationDomain_4eb38c87-8d1f-4ee1-b676-be735edf6a9a_terseLabel_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain" xlink:href="cgnx-20221231.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_StockIssuedDuringPeriodSharesStockOptionsExercised_82d9877d-7532-4aba-a983-9f7c747320d5_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Issuance of common stock under stock option plans, shares</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_fb62ba7f-c72f-47ae-ac6f-fd368f6863dc_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DeferredTaxAssetsLiabilitiesNet_aef77cf3-b67f-4899-889c-8adbefe3077d_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeaseWeightedAverageDiscountRatePercent_7dfc3f04-ff00-49ee-8d0e-a8984c8d2c63_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_2dfa67a6-d08b-4490-935d-bfcbbc21b441_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredTaxAssetsOtherNoncurrent_900aa65c-8710-4481-ac30-6715a8cee9b6_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_5fac6ae9-881c-4e82-a3d0-3639e1709521_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AdditionalPaidInCapitalCommonStock_fa952ec3-59a8-4f61-92fe-5b58eb1bb3a5_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_4719d460-1046-4b28-9be4-4669e39ee1ed_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CurrentStateAndLocalTaxExpenseBenefit_fabaadc2-bab9-4401-9b32-011be47c8022_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_42a9e8f8-6ce3-4856-a3f3-08a1eb1b6ee4_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_32b992b3-01b5-4b66-a40c-7bfedf6c48b4_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_c36bff19-afca-4512-8866-75825d3b929f_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_9ce3f4f0-118f-4a81-b64f-de810d155f3c_negatedLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reclassification of net realized (gain) loss into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_c0a27621-4a50-4160-9ee0-03e26f7b1bbf_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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_30f29532-13ca-41f4-950b-7a47c48e4ce3_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareRepurchaseProgramDomain_76774ace-1647-4559-b179-5d725fa3912f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain" xlink:to="lab_us-gaap_ShareRepurchaseProgramDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_f0077c1a-c59d-4b4a-a15d-3f85830f011e_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_d9015e7b-04af-437b-b5b8-9cbc1c63b6bb_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EquityComponentDomain_f86bb8f0-8b8f-4b2f-867d-4c9a134a9f97_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SubsequentEventTypeDomain_1b4a8304-c4c0-4315-bd55-3913aafb142f_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_RepurchaseProgramMarch2022Member_87d8a51c-9be9-4bb5-86d9-5fc7a73029c1_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2022</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member" xlink:href="cgnx-20221231.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_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_e89f5fff-5b3c-41ec-9ed3-a7305b212d8d_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_893c9262-e185-4c85-ac57-b9d6259ae3db_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross amounts of increases in unrecognized tax benefits 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SummaryOfIncomeTaxContingenciesTextBlock_adde76d5-61ed-4667-b5a3-b71918591184_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_1e7fc082-3ef5-4ddb-889a-147ff68e469f_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase in tax reserves</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Increase In Tax Reserve, Amount</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Increase In Tax Reserve, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_da356593-3c25-4555-869f-bc327627ee58_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AvailableForSaleSecuritiesDebtSecurities_de02cf21-f79b-476f-80c0-e53c35f0a5ed_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Total</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_4e11479d-cba2-4866-8ffd-623d654074af_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_c6607a4a-4ae8-424b-aaf0-8eb8d363f056_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_HedgingDesignationDomain_e123b102-7a20-4b95-9962-4bd7a662a857_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_TaxCreditCarryforwardNameDomain_2616fb6a-e2ad-4e7d-bfbe-479ba016591a_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_21a0c750-4245-472c-82c6-05102155bfb1_terseLabel_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DamageFromFireExplosionOrOtherHazardMember_df5d0eb5-c6aa-47b2-bcde-fb4715c720cb_terseLabel_en-US" xlink:label="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Damage from Fire, Explosion or Other Hazard</link:label>
    <link:label id="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember_label_en-US" xlink:label="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Damage from Fire, Explosion or Other Hazard [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DamageFromFireExplosionOrOtherHazardMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:to="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_628f2824-3c96-4f84-ae8f-42329bbb5bac_terseLabel_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_CommonStockValueOutstanding_751441db-e053-403f-86b0-e8541dcdca95_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, $0.002 par value &#8211; Authorized: 300,000 shares in 2022 and 2021, respectively, issued and outstanding: 172,631 and 175,481 shares in 2022 and 2021, 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_55c29bb3-5d75-4c6d-9f08-9679ddf86093_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_005a22c3-e8cb-4ef0-912b-965230d19555_terseLabel_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_522c5509-033f-49f1-a42c-57b80dc15cfc_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_adf09f36-0408-430d-9769-2c84a7541c08_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_AwardTypeAxis_c98ef7fa-063c-4282-8b69-89b021e0f2cf_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_4f471449-83b9-470e-a794-80996682436a_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross amounts of decreases in unrecognized tax benefits 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign_357a48f8-ec7b-4a96-a264-60b1ddd2c385_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective income tax rate reconciliation, tax settlement, foreign, amount</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationTaxSettlementsForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign" xlink:to="lab_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSoldOverhead_43d5cc96-7fad-4af4-9f00-6fab1587fcaf_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSoldOverhead" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost, Overhead</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSoldOverhead_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSoldOverhead" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost, Overhead</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSoldOverhead" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfGoodsAndServicesSoldOverhead"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSoldOverhead" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSoldOverhead" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_077e2a95-1afb-4a56-8b85-f2bbb5375cfc_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_cd964dcf-bb07-4ed0-8fbb-3e722d1f29fe_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_ValuationAndQualifyingAccountsDisclosureLineItems_067f69fe-1448-4dc9-96f5-79e72d42acb1_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_cgnx_GrossLossFromCatastrophes_8d18ae46-954b-4ff8-a1bc-51878f82b4cf_terseLabel_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes" xlink:href="cgnx-20221231.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_currency_AllCurrenciesDomain_47eb282d-f334-451c-995c-0db229565e3e_terseLabel_en-US" xlink:label="lab_currency_AllCurrenciesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_5671a1fb-b431-4119-abe2-a2e2d2da55a7_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_RevenueRecognitionAndDeferredRevenueAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_Liabilities_f0689de0-d80b-493a-8fab-9fc2a86549c4_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_Customer2Member_abf73cd0-8b73-402a-b3f3-8919dee9a62f_terseLabel_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 2</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member" xlink:href="cgnx-20221231.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_OperatingLeaseWeightedAverageRemainingLeaseTerm1_aaaba401-d1bc-44f8-b98d-6b6d58c33b99_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_0d8d673b-f2c8-4730-8b23-5557833275bd_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_4702f92c-6147-493e-a651-9f40446f4e70_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProductWarrantyAccrualPayments_f00b85b8-4205-45fc-a91c-b84251f6d861_negatedLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityCommonStockSharesOutstanding_387c9841-72ca-4a20-8cdf-bc8ba4bb4809_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_6748b274-d737-40ca-96e5-e8629f0abd15_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_8dc8e330-21e3-46a0-8a06-06ff1835be06_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_DocumentType_7ea7dde8-1dae-4d47-9094-ea65bee73d55_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_RevenueCommissionersIrelandMember_6a869d3e-874f-4ab9-b104-1de6367320ab_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3daffada-59a6-4d19-b351-c694e34511c5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentUsefulLife_bca7ad9c-8e8c-4596-a43e-70d66223cd6c_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_14c1cd37-20bf-4641-a527-ae7f3ea6d9ce_negatedLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AssetsFairValueDisclosureAbstract_c98cd8a0-0365-453f-83c1-015c6ca4709f_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LossFromCatastrophes_e577b45f-78d8-4489-a6ae-31a24379bf13_terseLabel_en-US" xlink:label="lab_us-gaap_LossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_ae538de7-7035-4572-88a8-6d6d49828a8a_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_6e67cb87-f739-4eca-b5fc-b44321379a40_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested beginning balance, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_b75ad053-0ef9-4da0-bc19-1098c1f15b95_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredIncomeTaxExpenseBenefit_533456df-4608-4e8c-a80c-5aea441f1ee0_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DevelopedTechnologyRightsMember_731e8482-d896-400c-878b-c6293ca0623a_terseLabel_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_3b4b502f-edf6-4a69-936f-2c9d8b51e5c4_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AccruedSalariesCurrent_972fb69b-e7c6-46e1-b030-2179fc4aa475_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_247a81ad-ebe0-4dc8-9db0-08213c5d89a7_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AllowanceForDoubtfulAccountsReceivableWriteOffs_62b4b5bf-4a6b-4fb3-95f3-6d6889001e10_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_TradeAndOtherAccountsReceivablePolicy_cb6b4fd6-bb71-4758-8ad3-7fb3ac995b53_terseLabel_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeStatementLocationAxis_789e2bb8-5891-4e7a-afe5-2b968c305f66_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_20e22360-04bd-4b69-9b4f-cf632d0d555a_terseLabel_en-US" xlink:label="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock, not yet settled (in shares)</link:label>
    <link:label id="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_label_en-US" xlink:label="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Shares Not Yet Settled</link:label>
    <link:label id="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_documentation_en-US" xlink:label="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Shares Not Yet Settled</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:href="cgnx-20221231.xsd#cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:to="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_981824af-3046-494c-97d4-7122ae88f4b1_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_0eda64d6-02ed-4e2b-b051-e04a9d847dc7_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_1621ac69-ce75-43e2-ba5f-ac81f1ced7c4_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ContractTerminationMember_89cfd4bb-6f13-46b2-80ef-cb24b6c9ceff_terseLabel_en-US" xlink:label="lab_us-gaap_ContractTerminationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract Termination [Member]</link:label>
    <link:label id="lab_us-gaap_ContractTerminationMember_label_en-US" xlink:label="lab_us-gaap_ContractTerminationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract Termination [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractTerminationMember" xlink:to="lab_us-gaap_ContractTerminationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_0da61918-56ea-4101-b8ed-1bf1fc430991_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AccountingPoliciesAbstract_b4bde367-8d2a-4a9e-945a-a32dbe8bb3c0_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ApplicationofCustomerSpecificSolutionsMember_5cfc6de9-a7e3-4480-baed-03fad5f17c33_terseLabel_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_3815de17-59e3-46e5-bc4b-4b9b4662fe4b_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockholdersEquityAbstract_6fa169f5-35de-42b7-a285-9f53295809cd_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stockholders' 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/2022/elts/us-gaap-2022.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_PrepaidExpenseAndOtherAssetsCurrent_6e8635f1-9507-4c13-8fb8-cbff019c7daf_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_3d221b79-0dfa-4466-9a85-71788824d01a_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_46ce6355-0c8b-4fa7-8c1b-728fd4a6504e_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_MajorCustomersAxis_95850e01-8f34-43ee-b421-df1f9b79c2d3_terseLabel_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_24fed768-f113-4a87-9098-dc898983ff6e_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_MunicipalBondsMember_f2d3496f-23eb-4072-be52-57861032c4fe_terseLabel_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_77e7c35d-ec24-4f31-9210-c7a5323e2b90_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax effect of unrealized gain (loss) on available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_8e668cce-686d-47ef-9097-4e71b2c971a8_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_9915dd3a-a843-495f-8204-f48dfaf938f0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_8dee2744-b5e6-4e73-8df9-975dd7fa35cb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_b9962958-9b8c-49eb-8a14-93ee353a815f_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_98e48573-22b4-4868-b67f-c9b0bbe7d94e_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_ee909437-e4dd-4c33-81a4-611f765dbd4a_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_fc20bba4-7c12-4062-850a-9cb0b9869d99_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestructuringPlanDomain_1106c058-31b3-485d-8b15-0b7b85fd0c89_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringPlanDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Domain]</link:label>
    <link:label id="lab_us-gaap_RestructuringPlanDomain_label_en-US" xlink:label="lab_us-gaap_RestructuringPlanDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringPlanDomain" xlink:to="lab_us-gaap_RestructuringPlanDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_ab11fe47-1f49-4d2d-a5d2-31bd524170d7_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PaymentsToAcquireBusinessesGross_c483c6cc-7379-4c91-8463-a334c1a5a870_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_7a561d92-fded-46a8-9f39-7db1dd2e48e2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax benefit related to a 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GrossProfit_1807297d-6423-4ee9-bdba-f9ad2af340e3_totalLabel_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityRegistrantName_42ad3b6f-8b76-4775-9bc7-18566ad8b7db_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_cgnx_SellingGeneralAndAdministrativeMember_093b5939-4e1f-4590-b536-e786550e60a7_terseLabel_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, general, and administrative.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember" xlink:href="cgnx-20221231.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_StockRedeemedOrCalledDuringPeriodValue_9e89d170-9124-4fde-b9f4-cee6f7e6c5b4_terseLabel_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SubsequentEventsTextBlock_908f5f56-d7f5-4beb-8750-e939d51c778b_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_eb3cf17c-ecff-4c95-b5db-f87d9d5ebc4e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_08be895a-b311-4592-9ac9-f14b7b14a285_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LeasesAbstract_840ce5a8-abd6-444c-9c2f-b366c3105a6e_terseLabel_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_d0877bff-50e3-45b3-841f-c7d4a5aa328b_terseLabel_en-US" xlink:label="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ConsolidationPolicyTextBlock_1905e47a-dd7f-41ce-a7d0-008456c531f8_terseLabel_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_currency_MXN_b367549a-fd50-416d-929f-d50886c1ae6e_terseLabel_en-US" xlink:label="lab_currency_MXN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_srt_MinimumMember_63265845-f60b-4313-a2ff-65adce069a13_terseLabel_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_69c6a997-032d-4ec3-8c80-1c007ccefd11_terseLabel_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_dei_EntityEmergingGrowthCompany_d000109f-3473-4d83-a160-4ebd4ed6aff4_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_CommonStockParOrStatedValuePerShare_80d9441b-c9f8-4606-a1e8-735567f7d6d3_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InventoryWriteDown_8266e5fb-cb76-4346-acfb-05c1e6d6ec64_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWriteDown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory Write-down</link:label>
    <link:label id="lab_us-gaap_InventoryWriteDown_label_en-US" xlink:label="lab_us-gaap_InventoryWriteDown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory Write-down</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWriteDown" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryWriteDown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWriteDown" xlink:to="lab_us-gaap_InventoryWriteDown" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_73a7a6d8-6d39-4fb4-8227-c30ab5c7394e_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_ValuationAndQualifyingAccountsDisclosureTable_a3c40027-a270-4f00-b11e-2f1a6957abb5_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_CommitmentsAndContingenciesDisclosureAbstract_dcfbd235-a15d-4912-b43f-4e759deac4d4_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FairValueDisclosuresTextBlock_af230684-6234-4d36-bb42-bb671cb108e5_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_TradingSymbol_8e8f06a1-7980-45f1-b953-2da6fa83c205_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_dei_EntityFileNumber_49cc56c0-98a5-4fbe-a402-60e7598ef908_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_IntangibleAssetsDisclosureTextBlock_8285635a-83a3-4fb2-bcd1-f502d8247b6c_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_MunicipalBondsFairValueDisclosure_efc3fb54-9af3-4f4c-bdd2-3664b13d9e35_terseLabel_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Municipal bonds</link:label>
    <link:label id="lab_cgnx_MunicipalBondsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Municipal Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_MunicipalBondsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_MunicipalBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Municipal bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure" xlink:href="cgnx-20221231.xsd#cgnx_MunicipalBondsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MunicipalBondsFairValueDisclosure" xlink:to="lab_cgnx_MunicipalBondsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_b71ee8da-fd18-4d3e-97ab-7cd6f5d30180_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2026</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_4c15feac-c10c-44a5-bee0-04af0a56cfc7_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DueFromForeignBanks_a182d827-591a-4f10-b483-d7cb76503560_terseLabel_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Due from foreign banks.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DueFromForeignBanks" xlink:href="cgnx-20221231.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_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_fedd3cf8-d0f7-4608-b7ee-6dab3c4f59cf_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList_97e8b02b-2ca3-43ba-8003-d8c17c6554b7_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Lease Income, Statement of Income or Comprehensive Income [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Lease Income, Statement of Income or Comprehensive Income [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList" xlink:to="lab_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_5cb73a0c-677d-4146-8fbd-92009fff75c1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_25d390f8-d9a2-4ec2-9622-e6f9c7d18798_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EffectiveIncomeTaxRateContinuingOperations_77a674ec-39e7-4d4b-9abe-ee756ef70444_totalLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ConcentrationRiskByBenchmarkAxis_10ae853d-9472-40d2-9f84-05b40acb3463_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_UseOfEstimates_f7df98b9-ec5c-461a-b31e-3f93ce14fb84_terseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_BusinessCombinationDisclosureTextBlock_77a9958e-04ac-4757-aef8-278c5a178ffe_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_98b2977f-c6c4-43e7-aba9-f94089f67728_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_IncreaseDecreaseInAccountsPayable_1d774f7a-694f-40fa-9e4c-318bb25ba987_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_a0c53f35-8219-4f09-8b0a-b14ad092b6e4_negatedTerseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete income tax benefits</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Discrete Tax Expense (Benefit) , Amount</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Discrete Tax Expense (Benefit) , Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_48f877c5-b508-4002-99bc-4983c691129b_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair value</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:to="lab_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_59796134-738a-40da-beb8-39750620c8a8_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_856d77be-dd7d-425a-add8-5f2163f6101c_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in tax expense, rate revaluation on state deferred tax assets</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Rate Revaluation On State Deferred Tax Assets, Amount</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Rate Revaluation On State Deferred Tax Assets, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_59d8fb5a-1941-4335-9139-497bbbdf42bb_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_GuaranteesAbstract_2768823c-bbef-4294-a8b6-e9b7ff0e9b7a_terseLabel_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InventoryFinishedGoodsNetOfReserves_d9f8c9da-aec9-4156-b267-5e0c20826225_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_3e6bbc09-5898-4577-baf8-3c2ca16ad407_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GILTI tax basis differences</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_049a2bfb-bb48-49f8-ba78-0d4622b83a61_negatedTerseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GILTI tax basis differences in connection with change in tax structure</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_PreferredStockValueOutstanding_f6dca73f-077b-4484-adea-528cdc39bc1f_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, $0.01 par value - Authorized: 400 shares in 2022 and 2021, 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_ce1f0d23-7b70-4d10-9103-b8d62a2229f4_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_EarningsPerShareBasic_bca72206-d9d8-45a4-93aa-88054eb4b77f_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_NumberOfGroupsWithinEmployeePopulation_5a6c304f-369c-4da0-93f0-d8731f4ed11c_terseLabel_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3091428b-2a1d-4eab-9692-c0072578eb36_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_88627897-dc9c-404f-bb7c-2810386d4e79_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_e0400216-305d-41a4-9b23-743862fca3af_terseLabel_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indefinite-lived Intangible Assets [Axis]</link:label>
    <link:label id="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_label_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indefinite-Lived Intangible Assets [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="lab_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_bb9d3598-3adb-486d-ae8d-2739658eddb8_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DerivativeInstrumentsGainLossLineItems_424761b5-7d45-460a-a4e3-3926eca44966_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityInteractiveDataCurrent_14d50d23-be78-486d-997b-77f453a6df30_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_7ffced53-5a13-4de6-9e8d-1f542aa9663f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_SovereignBondsFairValueDisclosure_beee49db-6fb0-45c6-b4ca-14304c95951b_terseLabel_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sovereign bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure" xlink:href="cgnx-20221231.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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_f2fff693-1114-4fa7-a08d-00ee0727178b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_e50ac60a-8ad3-4199-a0f9-8e77181b0063_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PaymentsForRepurchaseOfCommonStock_9d984f90-5ce4-42f1-97d0-7a2af1f08ad3_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeTaxPolicyTextBlock_d1e01435-fdb1-43dc-a292-071593b665d9_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AssetsCurrentAbstract_43960d55-e6ae-4bbf-88aa-4c9e2e228e3e_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_64f9ea2f-c9bd-4551-92ea-8455813ce85c_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_172049d0-45aa-4fb4-8068-c7dc6a8fccdf_totalLabel_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_UnbilledReceivablesCurrent_9d71d082-90ee-44c0-beea-cb32c972ca6c_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RetainedEarningsAccumulatedDeficit_dde1ac55-1d39-4565-8fca-0935bbfe8dc8_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfFiniteLivedIntangibleAssetsTable_c537080b-79b4-4998-bd90-d23a652e49df_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_TrademarksMember_cf06aa9d-645c-4e55-aea5-1224d85b4db3_terseLabel_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trademarks [Member]</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FairValueMeasurementsRecurringMember_1e73bbd9-8977-4e3b-b20c-ccebfe7c2de8_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_d7a10a9d-62fb-4b1d-9097-7f88fde239bd_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_3ba05770-aad2-4574-9d22-24e6daf28de5_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_DocumentFiscalYearFocus_4b361ff3-1e78-4be3-aa7e-9049b47bb412_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_949883cd-d6ee-43b4-80a0-75aa63a4a919_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_FairValueByFairValueHierarchyLevelAxis_730c1cb1-e403-471b-963b-2512d07bd965_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_currency_CAD_393d1830-27e2-4de1-9f8a-fe7a51b8ed30_terseLabel_en-US" xlink:label="lab_currency_CAD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_e795c7b6-2f1f-49e1-8936-a99830918fb7_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CurrentIncomeTaxExpenseBenefit_d46ed565-8ea2-409e-bce4-29cc6879789d_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_May2020Member_fbb043bb-ab89-4b2b-ad25-062ea232f981_terseLabel_en-US" xlink:label="lab_cgnx_May2020Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">May 2020</link:label>
    <link:label id="lab_cgnx_May2020Member_label_en-US" xlink:label="lab_cgnx_May2020Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">May 2020 [Member]</link:label>
    <link:label id="lab_cgnx_May2020Member_documentation_en-US" xlink:label="lab_cgnx_May2020Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">May 2020</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_May2020Member" xlink:href="cgnx-20221231.xsd#cgnx_May2020Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_May2020Member" xlink:to="lab_cgnx_May2020Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_888713f0-4a0a-4e1e-a1f1-1c1cb6792d1c_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_985e3573-7c57-43a9-af41-ac51d1671dd8_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeaseExpense_7bc2a4f4-260c-4756-9100-d0381bc8b139_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_a77762d7-7406-465f-8cee-233869a4e44e_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_47b37d7c-6f5e-43b7-ae9d-697bae41ebfb_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax benefit related to employee stock options</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_MaximumInvestmentOfCompanyInPartnership_688f663b-a06f-4818-9527-b59ef00910f2_terseLabel_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_IncreaseDecreaseInInventories_1f45b0d4-b522-4c96-a759-83b85dfe291b_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_2d39f205-ae8e-418f-be15-1544a0b0d5a0_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_CommonStockSharesOutstanding_711c915f-5fbe-4dab-a8d4-e4fe8bb19dd3_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_Goodwill_33d326ed-089e-4445-bc9a-c82775b77541_terseLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_5e579080-8fb0-4e11-8136-1f0cef9352cc_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Beginning Balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_5fa08a23-e9e1-4099-88bc-2b833986d848_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_MovementInStandardProductWarrantyAccrualRollForward_559e60b2-8cd3-48a8-b785-df7b4b47705d_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_PropertyPlantAndEquipmentByTypeAxis_a0c08266-c179-4f98-af16-c8fba01c3bfc_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IncomeTaxExpenseBenefit_0aa3d99c-9b92-4fb7-8cee-59fd414b1932_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax expense on continuing operations</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_0d8602d8-7c74-4040-b996-5f733fd267ec_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_SegmentGeographicalDomain_9d07ac14-77fb-4268-8a70-7f93e5ea7bdd_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_DeferredTaxAssetsValuationAllowance_64144837-5bc4-4d64-9552-57c2ca698330_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax assets, valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_1ad70efb-f35e-471e-95d8-6fd88cf52475_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DeferredIncomeTaxLiabilitiesNet_fcdd91c5-2b07-468e-811e-089cc2ae0987_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_currency_HUF_a2a9e5d9-bd81-423b-96bc-2bd498689775_terseLabel_en-US" xlink:label="lab_currency_HUF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_dei_EntityPublicFloat_0cb8d14f-f89c-4063-90ae-296aa1c7cf3a_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_BalanceSheetLocationDomain_cf76ae27-689b-43be-b98c-7007a63cd359_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationDomain" xlink:to="lab_us-gaap_BalanceSheetLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_4debdda7-a1b3-4f46-b708-826ae4392d83_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_CostOfGoodsAndServicesSold_bba6cbd3-773d-4f11-8e90-19f852bf48fe_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CompanyContributionsVestAtEndOfTwoYear_a65e3d41-c55f-4ce3-aa78-2c7d671dd11f_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_DerivativeLiabilities_a90b06bf-5126-4128-8982-a647f94ff58e_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_cd09528e-051a-4040-aaad-24e0269ad7eb_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_27769606-d572-4a76-8f60-a6d58ad14bf6_negatedLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeFairValueOfDerivativeLiability_b75cfab9-2d3d-40f8-a743-ed507eb901d1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_InternalUseSoftwarePolicy_3125d510-952b-43aa-964e-b5e5c6e90cff_terseLabel_en-US" xlink:label="lab_us-gaap_InternalUseSoftwarePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AccountsReceivableMember_0a36f699-1caf-44d9-8695-de08d0eeb5d6_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2d6f879b-bdf4-4e97-bcbd-013d1d154fbd_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_LongTermInvestmentsMember_1e439304-51a1-497a-beef-d019e87aa000_terseLabel_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember" xlink:href="cgnx-20221231.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_BusinessAcquisitionAcquireeDomain_50177c64-4578-4705-bd6a-0823ef2cf7a4_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProductWarrantyAccrualWarrantiesIssued_9f6ccb4d-e6ff-4a1d-9dfc-d3c2069e46a8_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredTaxAssetsGrossAbstract_c226ad81-0162-4b63-8ed9-347395c10099_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ValuationAllowancesAndReservesChargedToOtherAccounts_36e1a288-b51a-4acc-8e36-5f9cafd99817_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CommitmentsAndContingenciesPolicyTextBlock_fc474494-0bd1-4e3d-af6f-98cf086d1a5c_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LiabilityForUncertainTaxPositionsNoncurrent_65cdca26-becb-4b1d-9e5e-4acf78e56c10_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_7b87a03c-55a6-412a-97ab-dd0533f6ae1b_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents at beginning of year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_f9f635c1-b342-4ae7-9e97-0d55f8fb111a_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_729a09ce-835f-4814-bed1-26144853114a_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign currency translation gain (loss)</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_ef121dec-7820-4329-b4f5-3ea5dc9ce34c_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_167e8f64-2683-47db-a050-37f377fdd307_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges_a9bc1cba-9271-4bb2-9876-c36a2a2409a1_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in tax expense, restructuring charges</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Restructuring Charges, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_eb6b4b73-c8fe-47c7-8e96-2b1efec50433_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_a0f95061-59e1-447a-8d57-487b3991744c_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ContractWithCustomerLiabilityCurrent_cbc900df-00a0-44ca-91cb-5ac8f238d510_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_f639e500-8ec8-4a01-b75c-3c284d884756_periodStartLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_8f686e60-91fc-4028-8444-6b812dfba7dc_periodEndLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_a148d76c-34ef-43f8-80b3-727aac6a17cc_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in tax expense, catastrophic event</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Catastrophic Event, Amount</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Catastrophic Event, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_71284056-99f6-4a22-8951-3fe01b22fb60_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeStatementLocationDomain_063e94d2-ebf0-4b20-8a6b-be18f7558a1d_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_7996ad84-804b-47f3-a38e-657022da595a_totalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_AmendmentFlag_c4d0518f-7611-4047-b968-dc153824bc6a_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_FiniteLivedIntangibleAssetUsefulLife_cbaaffb7-0914-484c-9867-624781a9008f_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_ValuationAndQualifyingAccountsAbstract_d687e681-7ac3-4bd6-96bf-0d9a3cbc4f8a_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_cgnx_ExcessAndObsoleteInventoryCharges_ec6db4ce-cd01-42f8-aaf4-61ae40d60a3b_terseLabel_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Excess and Obsolete Inventory Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges" xlink:href="cgnx-20221231.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_cgnx_AssetBackedSecuritiesFairValueDisclosure_99631781-eac2-4338-94b1-cf66b6afc6d2_verboseLabel_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_710c7267-b968-4d8d-b05b-8f7521e5e94e_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GoodwillAndIntangibleAssetsDisclosureAbstract_56b58dc5-4492-409a-a9b5-de8250358ad9_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherAssetsNoncurrent_4419a5b6-fb9f-4059-8e4a-d4d3dc5faa84_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ExpirationPeriodOfStockOptionPlan_603f275e-ae4d-4fa7-a733-be6d0b83a3be_terseLabel_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_d184569a-bf9e-48d2-b0c7-4adabc605f11_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_6d659996-e65b-4782-a6a0-5f415ed69c81_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LesseeOperatingLeaseTermOfContract_e8075886-7750-4bc2-9476-ed1f5465cf11_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_39ea7f58-65f6-40e5-91bc-4a7bd5b01238_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_OtherAsiaMember_b8a16ee9-88aa-40a3-b681-95c45f2c0116_terseLabel_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember" xlink:href="cgnx-20221231.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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_d935a90e-5883-4aba-a045-0f9f20fdfd55_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityIncorporationStateCountryCode_1d19a76d-6e35-486c-a35c-956c83a9e2ae_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_ae016c48-ca23-44bc-aaf2-8794ce7a35e3_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax expense related to international tax reserves</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_3b72f311-1038-4068-af07-c87e4ed8432e_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_CurrencyAxis_00af349c-7f64-425a-b5f2-aa0ccebb8b55_terseLabel_en-US" xlink:label="lab_srt_CurrencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_OperatingLeasePayments_4e7fa61f-e95d-4c7f-a4aa-acc51a930934_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_d6683826-bc7d-4b9a-9198-ba111e8460ff_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_EmployeeStockOptionMember_bc523fbd-559f-4d8e-b6a5-d2d9b96ddf2a_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_deedbca8-d81d-4963-a1cb-0165cd550978_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_0c1eb7a9-81e5-401c-8223-8bde1655462d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockIssuedDuringPeriodValueStockOptionsExercised_a163b02b-6465-4af4-a186-706847911eaf_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_474cf174-73ef-4cc5-83ce-6d7a98156303_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CommonStockSharesAuthorized_ce07cd49-aad2-4496-8f66-a03635b67038_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IntangibleAssetsFiniteLivedPolicy_8a5cf51e-8802-4673-bf05-7b8060c5cc88_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_6307b605-646b-434f-81db-0aad8234df97_terseLabel_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_AccruedIncomeTaxesCurrent_802314f5-97c7-46fd-8583-733d1da1f91a_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StatementOfIncomeAndComprehensiveIncomeAbstract_a9ab51d2-8bb4-41de-930b-6bc163d4f56e_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_MaximumMember_3d8baad4-4e33-4681-99b4-7a0debe3e5e9_terseLabel_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f5e656da-badb-44db-87d6-20210dd13e79_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CashAndCashEquivalentsAtCarryingValue_78598b7e-4b0c-4967-84dd-f1320dd9dabb_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_f8ca17da-d9ef-4b34-9b93-e5888b2fd1b2_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncreaseDecreaseInContractWithCustomerLiability_f429a4e9-b11b-4a00-b95e-d6bfddeda18e_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BusinessAcquisitionLineItems_76c3c4a2-3bfd-4b9b-a8e5-9294350dc4b1_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GoodwillOtherIncreaseDecrease_e46409bf-3db2-412c-b490-369e0e92fdcf_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_December2022Member_81d75014-e1d4-48a2-b6ab-da8ca51a0165_terseLabel_en-US" xlink:label="lab_cgnx_December2022Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">December 2022</link:label>
    <link:label id="lab_cgnx_December2022Member_label_en-US" xlink:label="lab_cgnx_December2022Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">December 2022 [Member]</link:label>
    <link:label id="lab_cgnx_December2022Member_documentation_en-US" xlink:label="lab_cgnx_December2022Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">December 2022</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_December2022Member" xlink:href="cgnx-20221231.xsd#cgnx_December2022Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_December2022Member" xlink:to="lab_cgnx_December2022Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_2a9c84c3-34c6-4960-99de-1b8ffe73efde_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockholdersEquityNoteDisclosureTextBlock_a41291a4-de23-4857-b9e0-33335676db05_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stockholders' Equity Note Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_3b5ba933-66f3-4c19-b134-4f927a5519a9_totalLabel_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_5d5b977f-b642-4a50-8e8a-47a1f11cd638_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DistributionRightsMember_5334a58a-bb45-4107-aebf-692485ae4542_verboseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_e13891d2-6761-45e1-99e5-6dd1367171cd_terseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncreaseDecreaseInAccountsReceivable_83a905e7-6b6a-4539-ac03-c750c7e99314_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_Security12bTitle_d2ccb08a-3955-421f-9f7c-25765b971c75_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_LiabilityForCatastropheClaimsByCatastrophicEventAxis_afebd82c-5c6b-4b32-b75c-0bc7f678b59e_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Axis]</link:label>
    <link:label id="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_label_en-US" xlink:label="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:to="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_80bfe0f2-d3ad-4ee8-86db-bca34bac5959_terseLabel_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-cash, Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes" xlink:href="cgnx-20221231.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_SubsequentEventLineItems_37781eae-52ba-42cf-b38e-ab239899d8a8_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_6523c4b6-def3-4cd4-a28a-b0c021827fd9_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_SegmentReportingDisclosureTextBlock_3463a4b7-f121-40d0-9b3b-c9649799d906_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AccretionAmortizationOfDiscountsAndPremiumsInvestments_88a6456e-2df4-4ab6-a370-917461e4e6d3_negatedLabel_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_07dda9aa-79e6-455b-83ed-7934775ac6b6_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reduction of income tax expense for adoption of ASU 2016-09</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_343c7ff6-94cf-4dcd-94d1-51fcdbf472e4_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_ed69e144-b5e8-4846-aad7-5a048b40c12f_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in tax expense, releases of reserves</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Release Of Reserves, Amount</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Release Of Reserves, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_584fd555-191f-4eb8-a731-87a2902aa422_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_9b54461d-670b-4651-a5b5-10f044d9c870_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_USTreasurySecuritiesMember_626d2504-40b6-46d6-bd4d-07470481abf9_terseLabel_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_c11a54d0-2a71-43c0-a55a-769333b67cdb_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_df5ab93b-610f-4110-addf-0c4981ee2562_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_WeightedAverageNumberOfSharesOutstandingAbstract_626c7f50-04e0-48de-bf58-32b9acae7e39_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InventoryNet_14ecdadf-a995-4196-a2c4-84fe1b076bfa_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_233bfa6e-329e-4dbe-9cc2-031e42b630de_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccountsPayableCurrent_b85b413a-aa46-4395-a3dc-ff994844b9d5_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IncomeTaxAuthorityAxis_ca05ef3b-b7c5-4194-8f24-9a2b6fba0441_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_e1745a0a-e26f-4778-bb09-2915b46e9155_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_WeightedAverageNumberOfSharesOutstandingBasic_bb176bb9-6081-4b13-bfe5-3ac2d242d1a9_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_f949334e-8d3d-4337-b36f-d3202386be35_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_RetirementAllowance_90880cb0-5853-40f1-b8d9-43c667343635_terseLabel_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement allowance Japan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance" xlink:href="cgnx-20221231.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_AccruedLiabilitiesCurrentAbstract_f48f926e-4c45-4998-9cb4-b043f1aa11ed_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockOptionPlanExpense_deeee91e-2447-4215-af04-ff490bab47fe_terseLabel_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GainLossOnDispositionOfAssets1_06a1ee64-3b89-4930-ac07-83bc05c3111d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss on disposition of property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_6ddc3c89-d6b4-4fc6-8dbc-c087a35c5e07_terseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_RestrictedStockMember_7b0e68aa-acbf-4caf-9ce5-c9f1577c59d6_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_PropertyPlantAndEquipmentLineItems_db1325ef-b44a-4295-b12b-f5f828d3ac56_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CorporateBondSecuritiesMember_97cf2c09-55c3-4414-a61c-146a4889eb65_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityWellKnownSeasonedIssuer_e64f33ba-76ee-494c-81c3-c17249d65f54_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_cgnx_DiscreteTaxItemsAxis_1c077d40-dd77-4ab3-98fc-b0455bc8dd4a_terseLabel_en-US" xlink:label="lab_cgnx_DiscreteTaxItemsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Items [Axis]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxItemsAxis_label_en-US" xlink:label="lab_cgnx_DiscreteTaxItemsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Items [Axis]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxItemsAxis_documentation_en-US" xlink:label="lab_cgnx_DiscreteTaxItemsAxis" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Items</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsAxis" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DiscreteTaxItemsAxis" xlink:to="lab_cgnx_DiscreteTaxItemsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_424ac5c6-1dd9-4643-bb40-d3cde810e457_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_23d6bb00-85ca-4939-9275-2fe03fd1d635_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RepurchaseProgramMarch2020Member_e7a83aac-1f21-4e66-9201-c68b9f536c4e_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2020</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member" xlink:href="cgnx-20221231.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_LesseeLeasesPolicyTextBlock_e1f1e00e-d6d8-4b49-9a11-01168e074436_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FairValueInputsLevel3Member_0056667d-7a33-4265-81eb-468e9d4dd489_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_NatureOfOperationsPolicyTextBlock_dfcee720-f3a2-46e7-8d31-0c8c31b348f4_terseLabel_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nature of Operations.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock" xlink:href="cgnx-20221231.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_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_f4f3eb20-b759-4e77-aab7-aa78fd0e92dc_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_RestructuringAndRelatedActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_ad84a0d4-4d32-4e0d-a64a-a6ab37209619_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AllowanceForDoubtfulAccountsReceivable_17bcfb9b-4600-4d79-b986-9c07b967f886_periodStartLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_3a1db19d-c248-4b16-a369-6dbcde82450e_periodEndLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeTaxReconciliationNondeductibleExpense_227d8454-3087-412f-b396-c523aa398091_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective income tax rate reconciliation, nondeductible expense, amount</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpense_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:to="lab_us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_59431fe0-4a54-4d1c-b8e6-cb7752736053_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BusinessCombinationsAbstract_c8e7b6f2-3fcd-485f-a9aa-e3f238ebe62f_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncreaseDecreaseInDeferredIncomeTaxes_4fde1d19-4f27-49fd-8a5f-656317964cb2_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_9d4d393f-2c8f-446e-ad2a-2d107d27822b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CustomerContractsLiabilityCurrentRollForward_c87256ad-5c35-4c1e-8e36-5839e01a918e_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_GoodwillRollForward_ae0dc2ac-3bb5-4893-9209-a215bf7ccac4_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InterestReceivable_84fce736-e861-4257-8d67-4ad2b501fdf6_terseLabel_en-US" xlink:label="lab_us-gaap_InterestReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LandMember_cb747dda-8b75-4330-9c82-b1cf3db3033d_terseLabel_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EarningsPerShareDilutedAbstract_23943c8e-4723-4e58-97b5-620af9212d1b_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ValuationAllowancesAndReservesTypeAxis_8753025c-3b7f-431c-a84c-8f0f164f0db9_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PaymentsToAcquireBusinessesNetOfCashAcquired_bd414aaa-38eb-458e-b1fd-6a3da8deb8b2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_FairValueInputsLevel2Member_12f73475-a360-43eb-b5be-51085a8dd058_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_CurrentFiscalYearEndDate_554c0ced-5813-498a-8989-94a3a8006460_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_FiniteLivedIntangibleAssetsLineItems_da2c5004-8754-4c05-9dab-74af6ef27ea5_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IntangibleAssetsNetExcludingGoodwill_58e155b5-6cdb-4fcc-815c-0222acdc0554_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GainLossOnSaleOfPropertyPlantEquipment_0cdbf913-8f0c-4a3b-9da4-1f187fd1e08c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_53198eae-cda3-46e1-8c8b-3d9b5470375f_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_0d51c555-0f2a-4d5e-9d3d-e1fb8257f686_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ConcentrationRiskByTypeAxis_2709111f-2037-45c0-a807-e27948d3e89f_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LiabilitiesCurrent_8f283a1d-4c47-4d85-851c-84e32bb700d9_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherRestructuringMember_f1cf53a1-6696-4594-a368-3b93527a99d9_terseLabel_en-US" xlink:label="lab_us-gaap_OtherRestructuringMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Restructuring [Member]</link:label>
    <link:label id="lab_us-gaap_OtherRestructuringMember_label_en-US" xlink:label="lab_us-gaap_OtherRestructuringMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Restructuring [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherRestructuringMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherRestructuringMember" xlink:to="lab_us-gaap_OtherRestructuringMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_796f1c35-3459-48ab-ab3c-573ea50f94fe_verboseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AccruedIncomeTaxesNoncurrent_e219353c-1b2c-4c9e-a64a-ab11f355575b_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestructuringCostAndReserveLineItems_85537503-736d-4ef7-889b-13da719c98e9_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:to="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AmericasMember_905d895f-9aeb-4fd0-ba2a-9ce91179cc90_terseLabel_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_e83e14ac-682d-4ac2-8eb0-6e918f8c27cb_terseLabel_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentrations of Risk.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:href="cgnx-20221231.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_IncomeTaxAuthorityDomain_116f4f2b-1d39-4287-adcb-a9cb940b5293_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_13da67f3-6a7a-4c98-a1fa-fb597ab249b2_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_c49fa87e-9f78-4491-8945-6222346ab1eb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_2978a1c6-2183-41bc-afb0-dfb74cb2e346_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible asset impairment charges</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of Intangible Assets, Indefinite-Lived (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:to="lab_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_EuropeMember_df82e7bf-b659-45f1-9470-eb778acbdd70_terseLabel_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_8eb1e162-c0dd-43c3-9d7b-62844d7b8b91_verboseLabel_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_RestructuringReserveTranslationAdjustment_b02f55d6-b630-4876-b7d4-95c8c684493b_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserveTranslationAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_RestructuringReserveTranslationAdjustment_label_en-US" xlink:label="lab_us-gaap_RestructuringReserveTranslationAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserveTranslationAdjustment" xlink:to="lab_us-gaap_RestructuringReserveTranslationAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_7e46c952-dce6-4b97-802d-beb6b282cf9c_terseLabel_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Return-To-Provision Adjustment</link:label>
    <link:label id="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_label_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Return-To-Provision Adjustment [Member]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_documentation_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Return-To-Provision Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" xlink:to="lab_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_4e80328f-3713-4d71-b308-660d6843a650_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_2f3678af-8363-44ae-b6b2-e579322b79fa_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CompanyContributionsVestAtEndOfOneYear_69d1cec1-38cb-46e0-8c12-a19e113cdb1c_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_5d958ee1-c34a-4531-8a6f-0ecdd72c4029_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net unrealized gain (loss), net of tax of $(5,943), $(2,206), and $981 in 2022, 2021, and 2020, 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EquityAbstract_05e75f77-d005-4170-ac1e-c0a47b1fb3a3_terseLabel_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SubsequentEventTable_b3fe59f1-c240-4642-b75d-ae18d046cfa3_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_70230d2b-115b-4b97-b842-9ba07356694c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vested (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_48a5cc57-418e-4212-852d-5072a1925cfd_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityTaxIdentificationNumber_8bde863c-e622-4b7e-8759-c3771a5248c0_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_DerivativesFairValueLineItems_bed25608-6f14-48c1-b11d-5cd062dcf224_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ValuationAllowancesAndReservesAdjustments_b35f44be-2d55-4e81-be10-2c7405612a81_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_11599194-5ae3-47b0-8923-4c2dacff297a_terseLabel_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms" xlink:href="cgnx-20221231.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_cgnx_VoteEntitledForEachCommonShareOutstanding_29a2d551-d6b5-4b83-8227-755976f44cef_terseLabel_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_348c3ee0-ce8a-47b3-9862-e45d1a329a75_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_ecacee60-cd47-42bf-9069-97b42ba61805_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccruedLiabilitiesMember_98c29233-3b09-4fdd-ab0f-1beb4980f16d_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities [Member]</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesMember_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesMember" xlink:to="lab_us-gaap_AccruedLiabilitiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_75b0b0ef-47b8-424e-b140-05972265a2fd_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Costs</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Costs [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:to="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_6be22887-4baa-46a8-b404-8de638445c66_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityCentralIndexKey_f47494d6-0036-43d4-b376-c940113a6417_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_AntidilutiveSecuritiesNameDomain_4a864c83-86a3-4367-bb5c-77a72b92a47b_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_464e7090-c3c1-47ac-a214-7395865b4859_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_2b13273d-59af-41ff-8f98-5902e08a5a11_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BusinessCombinationConsiderationTransferred1_63aaa945-255f-44f9-bbca-ae3fba5058f6_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OneTimeTerminationBenefitsMember_0857b63b-d6ff-4929-a16e-70b1d92d6bc7_terseLabel_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">One-time Termination Benefits [Member]</link:label>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_label_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">One-time Termination Benefits [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:to="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SualabCo.Ltd.Member_20af0702-b18c-45ee-950c-587dafc6248a_terseLabel_en-US" xlink:label="lab_cgnx_SualabCo.Ltd.Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sualab Co., Ltd. [Member]</link:label>
    <link:label id="lab_cgnx_SualabCo.Ltd.Member_label_en-US" xlink:label="lab_cgnx_SualabCo.Ltd.Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sualab Co., Ltd. [Member]</link:label>
    <link:label id="lab_cgnx_SualabCo.Ltd.Member_documentation_en-US" xlink:label="lab_cgnx_SualabCo.Ltd.Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sualab Co., Ltd. [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabCo.Ltd.Member" xlink:href="cgnx-20221231.xsd#cgnx_SualabCo.Ltd.Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SualabCo.Ltd.Member" xlink:to="lab_cgnx_SualabCo.Ltd.Member" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EnShapeGmbHMember_42389aee-82bf-4716-949c-a271dd0ea340_terseLabel_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:label id="lab_cgnx_EnShapeGmbHMember_label_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EnShape GmbH [Member]</link:label>
    <link:label id="lab_cgnx_EnShapeGmbHMember_documentation_en-US" xlink:label="lab_cgnx_EnShapeGmbHMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">EnShape GmbH</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EnShapeGmbHMember" xlink:href="cgnx-20221231.xsd#cgnx_EnShapeGmbHMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EnShapeGmbHMember" xlink:to="lab_cgnx_EnShapeGmbHMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AgencyBondsMember_f83e819d-1641-44de-b415-628baa4fd68a_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency bond.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember" xlink:href="cgnx-20221231.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_dei_CityAreaCode_b9af665a-7755-4a72-8070-f71800e56f1f_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_AssetsAbstract_77513fc3-fffb-4936-a851-8ec37b0db59f_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_8337a3d5-ed84-4525-9bb7-df171aa8f616_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_4ec5fc5d-e9b3-4c10-8351-7ed2d06dc973_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EarningsPerSharePolicyTextBlock_87984fe3-b3e8-4794-9611-730c8089dd42_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensation_2d9754a7-65e2-4468-9d0f-ffc0dd6b9a0b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation expense and the related income tax benefit recognized, credits</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Noncash Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensation" xlink:to="lab_us-gaap_ShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_15691f39-26c5-403f-9de7-2eafb58388fc_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherLiabilitiesNoncurrent_a970733c-74f0-4cf5-85fd-50831253b7ec_terseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeasesOfLessorDisclosureTextBlock_e83935fd-9571-466c-b9b2-bc50caeb33ad_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessor, Operating Leases [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesOfLessorDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:to="lab_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_d7fc80f9-eefd-4000-a725-8592072701fb_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_838f3d56-6a9a-4a11-82da-6a01006c9f49_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2023</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DebtSecuritiesAvailableForSaleRealizedLoss_541e3e46-cff5-4b72-9c13-2dae7524eaec_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross realized gains</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OffsettingAssetsTableTextBlock_73eb667c-4e8b-4f56-88d0-59f5b978711a_terseLabel_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_NameOfMajorCustomerDomain_21cfb51d-98fd-4a42-bfb0-eccb6c645d72_terseLabel_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_96d3c61f-4263-4a37-97b0-3b3d356bc160_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EffectiveIncomeTaxRateReconciliationGiltiAmount_14f54e8f-08f3-4ab5-964d-21ccf7689121_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in tax expense, impact on GILTI</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, GILTI, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherInventoryPurchasedGoods_18e90584-6f4f-4da1-9b29-a79dd12e8675_terseLabel_en-US" xlink:label="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_StateResearchAndExperimentationMember_3cd6c737-1fbb-49ab-a080-8cf2a815d99c_terseLabel_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State Research And Experimentation [Member]</link:label>
    <link:label id="lab_cgnx_StateResearchAndExperimentationMember_label_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State Research And Experimentation [Member]</link:label>
    <link:label id="lab_cgnx_StateResearchAndExperimentationMember_documentation_en-US" xlink:label="lab_cgnx_StateResearchAndExperimentationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State research and experimentation.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StateResearchAndExperimentationMember" xlink:href="cgnx-20221231.xsd#cgnx_StateResearchAndExperimentationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StateResearchAndExperimentationMember" xlink:to="lab_cgnx_StateResearchAndExperimentationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_0fa834ce-0e32-480a-9665-708f63a07c32_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_2c435418-f65e-4606-ab8e-3e43d1258864_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StateAdministrationOfTaxationChinaMember_191977fd-4281-4821-8593-cda319409d47_terseLabel_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityAddressPostalZipCode_4ab12710-3feb-4ca1-a7a8-71af7b7ee71a_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_5f2fd7fd-f45d-4db4-990b-58a36fd5f42a_terseLabel_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_79678920-3bda-4741-876c-6924532a5376_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_us-gaap_BusinessCombinationsPolicy_bb1a9f8b-2257-4e62-80a3-9d7971570995_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_5d16eab7-10d8-4de0-949a-00ed29d3120d_negatedTerseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax benefit for audit settlements</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_IncomeTaxDisclosureAbstract_2748ce32-a0d2-42aa-901e-e0c685fdc5c5_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ValuationAllowancesAndReservesDeductions_4e6a79ab-dd89-442b-a8aa-7743a7a5f11d_negatedLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestructuringReserve_3d838719-af20-443a-8626-3be498fe263b_periodStartLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserve" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance as of December 31, 2020</link:label>
    <link:label id="lab_us-gaap_RestructuringReserve_195d5d4c-482b-4102-bab1-89403b35769b_periodEndLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserve" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance as of December 31, 2021</link:label>
    <link:label id="lab_us-gaap_RestructuringReserve_label_en-US" xlink:label="lab_us-gaap_RestructuringReserve" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserve"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserve" xlink:to="lab_us-gaap_RestructuringReserve" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_0895046e-bbc1-4519-bae3-2080733012ce_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_a5022cf9-b3fd-47b9-a852-44349bf617da_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_srt_RangeMember_c1bab537-03a4-4429-a664-824a37f01bd2_terseLabel_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_1c7160a4-a939-4f0a-a04f-1383da72e286_terseLabel_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indefinite-lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:label id="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_label_en-US" xlink:label="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indefinite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="lab_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_f56c0665-5fa3-4a5b-a422-f8fc011dde55_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_dcf4004b-e24a-4975-bba4-1f4318e71a45_negatedLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross amounts of decreases in unrecognized tax benefits 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_NoncurrentAssets_75d886d5-d382-40b7-ac2e-1a8c434aea5e_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DomesticCountryMember_90e0b960-9766-4183-afcb-03cbf54716bd_terseLabel_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Domestic Tax Authority [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_ForeignCurrencyContractsLiabilityFairValueDisclosure_ca528c20-a023-4b43-8c36-57372d53046b_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_NetIncomeLoss_d1d198bf-5130-411d-bc71-41493aaa3623_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net income</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_4d026cca-0c1a-4d85-9190-3d085a631ca2_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_OtherIntangibleAssetsMember_c0e25055-c44d-469c-b77a-40d141c88189_terseLabel_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_SubsequentEventTypeAxis_3403c06c-0bc5-4f28-a437-c57fc01cf335_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_a9170322-b035-4f82-b865-978ba7604ff0_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_HardwareAndSoftwareMember_5d90d213-d4ef-44e9-8e08-78f1f7b5b421_terseLabel_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hardware and software.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember" xlink:href="cgnx-20221231.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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_30b1fae7-2cfe-43d2-a477-a5aa70fef2a9_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Decrease in tax expense, release in valuation allowance</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringPlanAxis_ff19ac71-e432-4778-baa5-614326665473_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringPlanAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Axis]</link:label>
    <link:label id="lab_us-gaap_RestructuringPlanAxis_label_en-US" xlink:label="lab_us-gaap_RestructuringPlanAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringPlanAxis" xlink:to="lab_us-gaap_RestructuringPlanAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_e0a9c510-da9a-4c46-8f8e-d1910fa8546f_terseLabel_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember" xlink:href="cgnx-20221231.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_LesseeOperatingLeasesTextBlock_8d4f6b48-c7a0-4ae5-912a-6b715a19234a_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_9e7376dc-be55-43ea-8d8a-915425213fc0_terseLabel_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:href="cgnx-20221231.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_6036d815-937e-4513-81c1-bc275484491f_terseLabel_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_6e003e62-f524-409f-99a7-477174ddc15b_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_5416adad-8fd1-4bba-9fe1-fef5ccbe31bb_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeLiabilityCollateralRightToReclaimCashOffset_1e80a95d-1518-4185-90f8-3169dd5a4ad9_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GoodwillLineItems_b15aaff1-0c7c-4eef-bddb-0970bc13bc84_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StatementOfCashFlowsAbstract_6785938f-18ea-4232-84ed-2fff9e7911cf_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FairValueInputsLevel1Member_6062a3ca-1ca0-48ee-9b84-fb635d738932_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_e13e9629-16bb-4ad1-821f-401a76fee575_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_97f85219-ad99-4e0f-a068-dc7554696c97_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_09bd90a3-d416-4f67-879f-f08775952637_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset acquisition, contingent consideration, liability, current</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:to="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_3681c34e-14ff-434c-87ec-54c822c88f35_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeAssets_49d9ce9a-5e29-4e34-91f8-6a4c9b66aefc_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_0e4f6a29-8b76-413a-91ef-9e53b1fddb29_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_0185a284-74e8-42e2-a049-08a6e5669663_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_InProcessResearchAndDevelopmentMember_fa86e4ad-e007-4f08-92c0-83effb17286e_terseLabel_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">In Process Research and Development [Member]</link:label>
    <link:label id="lab_us-gaap_InProcessResearchAndDevelopmentMember_label_en-US" xlink:label="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">In Process Research and Development [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InProcessResearchAndDevelopmentMember" xlink:to="lab_us-gaap_InProcessResearchAndDevelopmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_a2ada49d-9fee-43db-ae20-63d15a0557d1_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment for Long-Term Intercompany Transactions, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_8b6e8081-dd1b-4a36-b613-4754def323fb_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_DocumentAnnualReport_f4564a53-08b4-4512-a867-813236dbc151_terseLabel_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_srt_StatementGeographicalAxis_612b99a0-2649-41f4-86b7-93d0a00c923a_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_AccountingChangesAndErrorCorrectionsAbstract_4a916e76-4956-4714-b002-8438c2e8a3f8_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_166dfa4b-5de4-49e8-a817-6ebe1741cd2c_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment, Intangible Asset, Indefinite-Lived (Excluding Goodwill), Statement of Income or Comprehensive Income [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment, Intangible Asset, Indefinite-Lived (Excluding Goodwill), Statement of Income or Comprehensive Income [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:to="lab_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_eec12670-b396-4dcc-b6e9-fec4050a4940_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentTextBlock_877ff534-bb56-4813-bf35-736118037863_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_be031f5e-2aea-4bdf-a517-6b96b703ed67_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current investments, amortized cost of $223,545 and $137,124 in 2022 and 2021, respectively, allowance for credit losses of $0 in 2022 and 2021</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_eddcf214-1ac7-4a8d-99a0-4cf1a2490331_verboseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestructuringAndRelatedCostNumberOfPositionsEliminated_c58fc51d-4372-4376-ab18-3feee545ad75_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of positions eliminated</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Cost, Number of Positions Eliminated</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:to="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_9f002f75-33d3-4e8f-a1de-1e3d2266a74d_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ConcentrationRiskBenchmarkDomain_59222960-465b-4534-8167-9a9489ae7a8d_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_cb20ee46-d69e-4b09-a9b8-278ad85b097a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestructuringCostAndReserveAxis_d3213bdc-5364-4acb-a336-e83510b0e305_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:to="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductsAndServicesDomain_f421d2f2-b6dd-4b1e-aff6-77b01a2aa781_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_dei_EntityShellCompany_ca631fe1-57a3-47d0-8661-46a8d805232e_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_IncreaseDecreaseInAccruedLiabilities_a9fd6801-c4a9-425d-9a65-2235592748ff_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_7d4fa0fd-8c4b-42d3-bbfa-4dc5359fc41f_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross amounts of decreases in unrecognized tax benefits 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ConcentrationRiskTable_234b119a-4ed1-4278-a037-382dcbe3b2f9_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_268cc0af-841d-4058-8299-ada4c350626b_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2023</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FinancialInstrumentAxis_6f6af09c-f46a-4c96-bd0f-258605067d35_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ValuationAllowancesAndReservesDomain_74bfde87-70cb-43c0-8513-8707bc00db8b_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SubsequentEventMember_bbce3ec8-4d5f-4d19-a7f8-b0a2a80d2e7e_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SalesRevenueNetMember_fd99e754-5a07-49ea-8d6e-ba7c724bc8d4_verboseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_DocumentPeriodEndDate_dc5939e5-6e74-45a9-b650-2f1bdcc4e48e_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_69e2f059-b163-4808-8c95-5c1dcef0b4ba_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_3d9bfadd-7df7-4f35-9c04-f5d8c3d3e6f1_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_dd360a5a-b4a0-43cf-97f5-a7c25bf4c31a_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_ProductWarrantyAccrualClassifiedCurrent_5a5bafd2-11f2-4db0-aa30-3b04cc10c1cf_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GainLossOnSaleOfInvestments_4a131b11-e52a-45ad-9c17-7de599365bbe_negatedLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SovereignDebtSecuritiesMember_d40a5488-02cf-4a5b-b16a-c45ec022a4ac_terseLabel_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_SouthboroughMassachusettsMember_75e5f9d6-3dcb-4bc6-87e6-f68d866181e8_terseLabel_en-US" xlink:label="lab_cgnx_SouthboroughMassachusettsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Southborough, Massachusetts</link:label>
    <link:label id="lab_cgnx_SouthboroughMassachusettsMember_label_en-US" xlink:label="lab_cgnx_SouthboroughMassachusettsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Southborough, Massachusetts [Member]</link:label>
    <link:label id="lab_cgnx_SouthboroughMassachusettsMember_documentation_en-US" xlink:label="lab_cgnx_SouthboroughMassachusettsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Southborough, Massachusetts</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SouthboroughMassachusettsMember" xlink:href="cgnx-20221231.xsd#cgnx_SouthboroughMassachusettsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SouthboroughMassachusettsMember" xlink:to="lab_cgnx_SouthboroughMassachusettsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_489efc8e-367f-4bdb-ac28-8179444cde5b_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_Assets_71937323-c9bf-4c97-ae68-645e2d359366_totalLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EarningsPerShareAbstract_c42eac18-a7b9-4390-82cf-0ba1ba447bb8_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_234bb072-722d-432e-9837-20260aacbd1a_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PerformanceSharesMember_e0a55b3d-5a6c-441c-afa1-4a13d7d60a72_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_3ab7f9d3-257f-4727-b0bd-7f6beb4c837c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring and Related Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring and Related Costs [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_95d3b19a-677e-47ce-bd09-8a17ed20d4fb_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_f0d9b6e8-97b7-4689-bf89-744f0591b665_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2027</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LongTermInvestments_80021653-1efb-46de-a5ac-e8d90897590e_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current investments, amortized cost of $476,148 and $587,981 in 2022 and 2021, respectively, allowance for credit losses of $0 in 2022 and 2021</link:label>
    <link:label id="lab_us-gaap_LongTermInvestments_0064baeb-94df-4bf9-8696-4ddcbf07f8e5_totalLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockRepurchaseProgramAuthorizedAmount1_bf5856bf-e1d9-43ad-8987-9d05dda65edf_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of authorized common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_label_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Authorized Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:to="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_f39c1952-fb8f-4699-9adf-c4ec6290a613_terseLabel_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_731adec1-4240-4800-8bae-9ffbf6b7a75f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfGoodwillTable_9366464e-dad6-49a4-aa35-2e005682e9b1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Goodwill [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_LessorLeaseDescriptionLineItems_b7f3dfcb-7c15-4ab4-88ca-b2ccfcfa15b9_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EarningsPerShareTextBlock_081dcc6d-6120-4c16-8ce3-d61656f4add0_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_currency_JPY_8c0fcdf0-45cd-4fa4-8a23-6dacec610509_terseLabel_en-US" xlink:label="lab_currency_JPY" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_cgnx_DiscreteTaxItemsDomain_5485f1b7-d43b-4b2b-b134-d662cc3463d1_terseLabel_en-US" xlink:label="lab_cgnx_DiscreteTaxItemsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Items [Domain]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxItemsDomain_label_en-US" xlink:label="lab_cgnx_DiscreteTaxItemsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Items [Domain]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxItemsDomain_documentation_en-US" xlink:label="lab_cgnx_DiscreteTaxItemsDomain" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Items</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsDomain" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DiscreteTaxItemsDomain" xlink:to="lab_cgnx_DiscreteTaxItemsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_3df9b0c2-15c4-4726-b571-d5c1145f9e38_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShortTermInvestmentsMember_3c327bf1-b1fe-4b92-959a-ca96f346225c_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_5b270362-f1e9-428c-88fd-e3c1ec7a8657_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_fe3dd4ab-e82b-4e02-93b4-41567694613c_negatedTerseLabel_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_b31c5eab-395a-4942-9967-1e5c8883b426_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Global workforce reduction</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Cost, Number of Positions Eliminated, Inception to Date Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:to="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_47eb9c1a-c4bd-4c8d-ad41-7234cc0710c0_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_GoodwillAndIntangibleAssetsGoodwillPolicy_f0d9d0b4-d43f-4686-809f-7f788f4d0755_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestructuringReserveRollForward_ac8edf38-d650-4701-89b4-2d443a314906_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserveRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_RestructuringReserveRollForward_label_en-US" xlink:label="lab_us-gaap_RestructuringReserveRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserveRollForward" xlink:to="lab_us-gaap_RestructuringReserveRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_64ff01b8-ca37-4463-844b-5de7d52925a9_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityAddressCityOrTown_7b73577f-20ac-41c0-9726-f6affc27ded1_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_CatastrophicEventDomain_1f2f3b82-9777-4345-b270-480ef02b5a03_terseLabel_en-US" xlink:label="lab_us-gaap_CatastrophicEventDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Domain]</link:label>
    <link:label id="lab_us-gaap_CatastrophicEventDomain_label_en-US" xlink:label="lab_us-gaap_CatastrophicEventDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CatastrophicEventDomain" xlink:to="lab_us-gaap_CatastrophicEventDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_e10aaf74-b4e7-49f7-a18e-bedc04d09c17_terseLabel_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury bills</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury bills fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure" xlink:href="cgnx-20221231.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_cgnx_ContractLiabilityForeignExchangeRateChanges_01808251-0a06-46de-8f75-ec040808711c_terseLabel_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_StatementOfFinancialPositionAbstract_7d41b11f-0e11-4402-be26-c738e8e9223f_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InventoryRawMaterialsNetOfReserves_e19988ec-d9a5-47cb-b8fc-d9bf2376d1a9_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredTaxAssetsOperatingLossCarryforwardsForeign_66896cc4-f908-4335-b33b-74538680648d_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_AuditorName_8346bc6c-d660-4eed-9acc-1a5efcfe1952_terseLabel_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_ResearchAndDevelopmentExpense_a2d465f0-5319-47b7-b042-6cde2a54568d_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_684584f6-cc0c-4fcf-955e-2e1eb3c1494e_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_b1ec1358-47f3-44ec-8c76-f5a3395f2960_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross amounts of increases in unrecognized tax benefits 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EquipmentMember_2cbbc59c-b926-4f47-9aec-42c5e8f6fbd4_verboseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BuildingImprovementsMember_964bb045-2c6c-4b1b-ac41-4442cc7c2044_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ResearchMember_f5d4d79e-8937-482a-9cd7-d3dcc212ca14_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RestrictedStockUnitsRSUMember_2e33231c-1c27-4881-97b4-ae92e1068109_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProductLiabilityContingencyLineItems_cc073713-9b55-4b3d-b47a-88304d25cabb_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SubsequentEventsAbstract_f72c3da3-c3ca-4d7e-85f5-63c3f80bf590_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProductWarrantyAccrual_07c9d0ce-65e4-4209-af82-5b6aed2b5981_periodStartLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_993096cd-b3dc-4267-8e8c-5e39e5096f68_periodEndLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DistributionNetworksAndCustomerRelationshipsMember_28798c98-7c4f-4db8-ba7a-71e885bea8ce_terseLabel_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Networks and Customer Relationships</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:href="cgnx-20221231.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_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_81deeb4e-b61d-4e6a-8237-f0f0da6c0f60_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_00206d7e-d818-485c-88aa-99cf8bf14a42_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_7efac052-ee9a-4206-89b8-856163594ac5_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AmortizationOfIntangibleAssets_386f8a25-773b-43bc-bed5-c886787c707a_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfGoodwillTextBlock_425cc214-d099-448e-b52a-85e707eb33c6_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_3a4a11f3-353b-4114-bf09-1f6a5082baa3_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2025</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CapitalizedContractCostGross_ddfafd53-9149-4231-96e6-4f24ea5398d7_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_InventoryPolicyTextBlock_fb2fafab-9fb6-4d7f-8d9c-c3687986c394_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ConcentrationRiskTypeDomain_564706c0-3cfb-4e31-9b2f-62677b87a9a3_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockholdersEquity_94899c53-c413-49e4-b467-86577cd59f8f_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total shareholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_6e800349-c128-4029-9a53-cd3a24d624a2_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_f2c3038b-dd6a-4e77-97e4-2d89e59f2b57_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stockholders' 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/2022/elts/us-gaap-2022.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_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_3f1b4909-d8c6-41d2-b1df-02283eadd55e_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_b1b1f994-2e99-413c-8ea9-a5d9cc8c1b3a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FiniteLivedIntangibleAssetsAccumulatedAmortization_c5f4ea18-d178-4f8a-95c8-b51fcd6dcb3c_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Amortization</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_617a53e5-60cd-4ed2-aecf-c56fe532b406_verboseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CustomerContractsAndRelationshipsMember_34ad672f-c124-4c88-a1e3-c5469bf11e8f_verboseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_b17392ce-ebeb-4321-ab9d-022b1354d39a_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember" xlink:href="cgnx-20221231.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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_f2180621-754d-4c7e-a97a-c13eb845e305_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2025</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PaymentsOfDividends_ed8f60e4-bceb-444d-8bb6-9ce123de72ce_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RetainedEarningsMember_5802a354-8000-4471-a48c-8aaa3245de83_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_c2bb71ab-53ba-49ed-a7a7-ccbd2cc72798_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DividendsCommonStockCash_8a0c3f54-95b8-41c8-8c3a-18193f5b45a9_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment of dividends ($0.265 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_CommonStockMember_d4ad4609-c29b-48fd-ad6c-657108bfbac1_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_MoneyMarketFundsAtCarryingValue_c6fd3563-91a8-4f76-bd9f-5485ca46a4b1_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_NumberOfReportableSegments_4f6bf7ca-2ee5-4038-85c4-d50772b5dfca_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BusinessCombinationContingentConsiderationLiability_500ec24d-a26d-4e0c-ac8c-434735430f73_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contingent consideration liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationLiability_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Contingent Consideration, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_9b1a3465-0b21-4a41-832f-f43c04a08f3f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RevenueRecognitionPolicyTextBlock_aff70293-6f20-4fe1-a14e-459254a0e797_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_StatementTable_b5c875af-5c86-4c51-9038-e57b7cbaf9e9_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_b62872cb-a51c-4199-a5bf-a961076f94d5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FurnitureAndFixturesMember_f0ae2e39-3a68-4e10-b63a-1dcbb0802ddb_terseLabel_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeaseLiabilityNoncurrent_5ef18dc9-2192-4c91-8223-cceab799fa1a_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredTaxAssetsTaxCreditCarryforwardsResearch_05ac11cc-ee05-43fd-9ead-6afb2e3c1fe3_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax assets, tax credit carryforwards, research</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, Research</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_a2bbc067-deae-42b0-bb00-4873cc9c9a4f_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross" xlink:href="cgnx-20221231.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_DefinedContributionPlanCostRecognized_ccada7ee-9455-421b-9668-4ee5401ec518_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_RangeAxis_1dc0fe02-ba27-4ecd-9add-52e5089543d1_terseLabel_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_de2b60f4-b80e-492a-962b-4a76340dce24_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment of contingent consideration</link:label>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_label_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment for Contingent Consideration Liability, Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="lab_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_91121558-5c6c-4588-b5e3-9f5e4ef8cf6c_verboseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SalesReturnsAndAllowancesMember_15c354d0-acb0-4a1b-9fdc-9563fb1fdf07_terseLabel_en-US" xlink:label="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_38889127-115a-4b3b-bf25-3dc7a15b004f_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_AccountsReceivableNetCurrent_5f465354-a5fe-4770-8724-59599dac8cdb_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable, allowance for credit losses of $730 and $776 in 2022 and 2021, 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StatementEquityComponentsAxis_9a71967d-e9a3-4d06-8e2b-3ba080b63f4f_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ComprehensiveIncomePolicyPolicyTextBlock_c181e02c-0264-4d3b-996f-c61f2fbb2873_terseLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_TaxCreditCarryforwardAxis_b2e9d3e3-89c5-460f-ab22-8e64e7fc2db7_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StatementLineItems_d153fc41-73a4-43ab-8c33-9f8ece807c00_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_17663da9-6706-4816-8322-680c2c668b0b_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_7aac18b1-5042-4796-a1ee-3f130052b26f_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_FiniteLivedIntangibleAssetsGross_3ff4c20c-0dfe-4d6a-a29e-bc0617fb7c04_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SellingGeneralAndAdministrativeExpense_b38fc95b-cfad-4c36-9d71-cfe97dd26048_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_f1d2dbca-b14a-47ca-8cee-8dc92074880b_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revaluation of contingent consideration</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="lab_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_837d29c3-1193-4bd1-aadd-590f60250c03_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_2d8ec981-07bb-4039-9b9f-fa978482df6d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeaseRightOfUseAsset_ad6064de-4ea8-4a1c-b857-fdb2a1c91d06_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_USTreasuryBillSecuritiesMember_f856a3fe-6e8f-4447-a09e-f7c04957e808_verboseLabel_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockRepurchasedDuringPeriodValue_05d0ed10-4f87-43c2-8926-901d65932e9a_negatedLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_fed20625-c152-42ed-96fb-d4c8d3423f5f_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccumulatedOtherComprehensiveIncomeMember_9e89a6d2-59ad-404d-9e54-85e198a7b21d_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_ace411f5-82f3-46ac-9a28-7522f96a6b05_terseLabel_en-US" xlink:label="lab_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Expense - Transfer Price Adjustment [Member]</link:label>
    <link:label id="lab_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_label_en-US" xlink:label="lab_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Expense - Transfer Price Adjustment [Member]</link:label>
    <link:label id="lab_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_documentation_en-US" xlink:label="lab_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Expense - Transfer Price Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember" xlink:href="cgnx-20221231.xsd#cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember" xlink:to="lab_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorFirmId_82e9b1ce-03bf-45d9-92b2-80102c41ffd4_terseLabel_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_TypeOfRestructuringDomain_cdf3a21b-a0d0-4087-a40d-bd086f6a3c7b_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_label_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfRestructuringDomain" xlink:to="lab_us-gaap_TypeOfRestructuringDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentTransitionReport_23082ce8-1c39-43c9-9bd3-b2c4015973d2_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_ForeignCountryMember_e8966491-d2dc-4e69-917f-63e0c97ada9c_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Authority [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_dei_LocalPhoneNumber_5f257fa1-0a64-4ac9-b114-3a4cc3f71e3d_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_9eddbffd-d4e4-404a-ae06-7e685ea8c02c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingIncomeLoss_7768eae1-44de-44f0-a5df-41d2c1ff2459_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DeferredTaxAssetsInventory_0964222c-0a4e-4620-b970-52d3ebf25ab4_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_bb88250d-cb34-4b40-9601-54dbbbcc9372_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Federal and state 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_NewAccountingPronouncementsPolicyPolicyTextBlock_bcef4382-aaa1-4446-9c68-233843921787_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_e274d9ec-d4cc-412c-9f34-ef6664149463_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockRepurchasedDuringPeriodShares_180f25b0-c5e4-4dd7-8684-4dedc014e2c3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock, shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_6cfe9beb-5640-4582-b92a-081f7c5fd19d_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ef2a792a-c47b-4768-be64-7e988b546cca_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProductLiabilityContingencyTable_8f390b63-3847-4e8c-96e4-2faf8350b4f5_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentPolicyTextBlock_335edaf6-f27a-4c51-beaf-900ed24a23fd_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfProductWarrantyLiabilityTableTextBlock_17b323d3-2f2b-4901-bc50-c373657083dc_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_PreferredStockParOrStatedValuePerShare_8ad63c31-6ac8-464f-b22e-208fc88e8b3f_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_74d715a7-946d-4376-8c59-7916397b04a8_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2026</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeStatementAbstract_9176ce8a-de0b-4641-b67f-b07346502b37_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_93e3cdef-e368-4880-aa2f-1553d55b2cd8_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AdditionalPaidInCapitalMember_18589d9b-d5ec-4b7e-abc8-30b269df91fd_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_DocumentFiscalPeriodFocus_8b6721ac-1ce3-48ff-967c-ac84dfa1dc89_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_us-gaap_EarningsPerShareBasicAbstract_341958dd-9471-4df2-ac6d-5346c40e64fd_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DerivativeLineItems_77b734ce-37e1-4afe-9539-21dd22dc3caf_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_81835b0f-0f06-4133-ac5b-fe33a28866cb_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_553f2652-b6ef-4ed7-b8c6-2f7ff7d716bc_totalLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_d9cd7de8-73a6-453b-a3ba-fdf8f093fc63_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_3e32f3e2-de21-4547-89c0-4cd2966c96f5_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_StandardProductandServicesMember_67a8b0e5-0238-4eb7-a2cc-9b40098834fd_terseLabel_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember" xlink:href="cgnx-20221231.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_ScheduleOfAvailableForSaleSecuritiesLineItems_eac2c0e0-a5b2-4cdd-b99c-81bffbbda023_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_44101591-e292-469d-800c-0e7f8029e94d_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_4616a281-7a80-4343-a18e-064bec689c76_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_CommonStockDividendsPerShareCashPaid_b1ae4672-9c1c-4bd9-8327-e9c623d86702_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_IcfrAuditorAttestationFlag_184a629a-e972-42c2-96cf-3bcf9d7a3685_terseLabel_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_cgnx_NoncurrentDeferredTaxAssetsDeprecation_86d2c883-92ab-4b99-9f20-e549e87528b2_terseLabel_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncurrent deferred tax assets deprecation.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:href="cgnx-20221231.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_f495604d-bbd3-477a-b375-e97a15f9c01a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_933a6da0-a505-4fc7-9006-9ff4d52d9c53_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_55612d4e-874f-4cd9-8e42-cfa454c3e8cf_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CatastropheTextBlock_b2ec519d-ebe7-4228-a694-a8818cf7a6ae_terseLabel_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophe</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CatastropheTextBlock" xlink:href="cgnx-20221231.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_PreferredStockSharesAuthorized_b45111c7-682f-4cda-abfc-94d0f5c4065a_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_e9b16d23-f3d4-4468-abe6-84b7ab1b137d_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Limitation on 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_848edd88-6428-40e5-b1ed-d3a280c5d6de_terseLabel_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_AccruedBonusesCurrent_178add3d-0939-4047-9463-7ea577ad58c6_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CommitmentsAndContingenciesDisclosureTextBlock_b6e6a068-ce18-43a1-b4e3-21e0574d6091_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_CommonStockSharesIssued_9ffb2b2f-e810-44d9-b89a-824f80fdd4f4_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_a7b4e81f-55b3-4fa0-803b-82c5ad50b977_periodStartLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning Balance, shares (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_470d5da0-4d4a-4dd3-a453-12b13f9e9a33_periodEndLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ConcentrationRiskLineItems_6b89637b-f242-4a61-b9da-3f94185e163c_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ForeignCurrencyTransactionGainLossBeforeTax_85784530-32ab-4ec2-8839-a0477866f179_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency Transaction Gain (Loss), before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_ca6a7de3-f4bd-457f-8107-dcc13dcaac6f_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_NetCashProvidedByUsedInInvestingActivities_b6f96445-717d-443f-94fd-8e41c065fca6_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_country_KP_c64c66ce-e83b-40a1-a071-1ed446698ddf_terseLabel_en-US" xlink:label="lab_country_KP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/country-2022.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_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_5066e8bd-d1d0-4d31-9fac-46dd70140841_terseLabel_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets</link:label>
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_label_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets</link:label>
    <link:label id="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_documentation_en-US" xlink:label="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets as a result of net operating loss carryforward, a similar tax loss, or a tax credit carryforward.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:href="cgnx-20221231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:to="lab_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_0aed0538-83ac-40d1-b7d3-a58ff3fd7f51_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ComprehensiveIncomeNetOfTax_9e18495e-511f-43a6-a4bf-eba58cea2618_totalLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_c8ebdf0b-d1ea-4d56-bfe4-d0a50373fdbe_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityCurrentReportingStatus_111ea93c-e899-4021-97a0-1075b04d80c6_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_PaymentsForRestructuring_29a91581-19d8-490b-a8f6-7b44d43621b8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRestructuring" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash payments</link:label>
    <link:label id="lab_us-gaap_PaymentsForRestructuring_label_en-US" xlink:label="lab_us-gaap_PaymentsForRestructuring" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments for Restructuring</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForRestructuring" xlink:to="lab_us-gaap_PaymentsForRestructuring" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CNY_cc0c4f89-d66e-447a-b26c-598807cbfe84_terseLabel_en-US" xlink:label="lab_currency_CNY" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_DisaggregationOfRevenueTable_6cb84dcf-dd37-4025-bd68-bc576d69f0e0_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_d050e9a9-a6c4-4cc6-ae4a-bbc75bd0db0e_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeaseImpairmentLoss_3d97ee6e-0020-41e3-bd29-a9072f559725_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease asset impairment charges</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseImpairmentLoss_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Impairment Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseImpairmentLoss" xlink:to="lab_us-gaap_OperatingLeaseImpairmentLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_42215f9d-83a5-4351-ba4d-0dc1e5ca699d_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ValuationAllowancesAndReservesChargedToCostAndExpense_7184a82e-f70a-4c00-9524-2a7b60336ce9_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DerivativeTable_d6286c1a-fcc3-4e5c-805b-4f2a1a0e41b5_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_bb2e59c9-a5df-4a45-b56c-573e13c47111_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_0c3e77df-d601-4f22-9bab-5ff07213f0d5_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_6180c583-bb3a-437b-bad0-1410511414db_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DiscreteTaxExpenseOtherTaxMattersMember_d69342d1-c257-4b2c-9eed-395c4e4e2a84_terseLabel_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseOtherTaxMattersMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Other Tax Matters</link:label>
    <link:label id="lab_cgnx_DiscreteTaxExpenseOtherTaxMattersMember_label_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseOtherTaxMattersMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Other Tax Matters [Member]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxExpenseOtherTaxMattersMember_documentation_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseOtherTaxMattersMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Other Tax Matters</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseOtherTaxMattersMember" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseOtherTaxMattersMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DiscreteTaxExpenseOtherTaxMattersMember" xlink:to="lab_cgnx_DiscreteTaxExpenseOtherTaxMattersMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_d7bc1e67-6845-481c-b7b8-68c430d5db41_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock by Class [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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_b0641d62-da95-4807-91ec-d36c9f7dcfbe_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_GreaterChinaMember_4c595f4a-c911-483f-bb9c-61f5497ec29d_terseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_d604e0ca-93ff-4ad9-9004-526a22760322_verboseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Greater China [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember" xlink:href="cgnx-20221231.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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_feed320e-6562-44c9-a8f5-8b6fdf07a5df_terseLabel_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentNet_b1ab6a60-dbaa-4f04-a468-dd8c90cadf15_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, plant, and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_3686e5af-20ee-4b99-9f50-6041db107401_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_5d689adb-6236-4014-927a-c839401899d6_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CompanyContributionsVestAtEndOfThreeYears_eee15528-4fea-4c56-b2b9-a9b5eca8fa4e_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_7f650912-bf8c-441e-8ae5-620f6b75c73c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentDisposals_f3c4dbac-0c10-4f9b-a1b7-00af17888c48_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_NetRentableArea_d5e6172b-154f-48e5-b2d6-89257ccfefdd_terseLabel_en-US" xlink:label="lab_us-gaap_NetRentableArea" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_b42a67d1-9e8f-4cd3-ab4e-647cb2ec53ab_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherNonoperatingIncomeExpense_f3d9b24a-bcd9-430d-9780-575db5f673bb_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BalanceSheetLocationAxis_162d05cd-e23d-43ed-9b1c-17e645bc525a_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationAxis" xlink:to="lab_us-gaap_BalanceSheetLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_eaded267-a19c-4e12-90c1-1f0c671cbc45_terseLabel_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_9c707738-fdfc-41f0-b71c-cc30c3b2a157_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_4d84fef7-69fa-4298-ba84-2bfb9c3185b5_terseLabel_en-US" xlink:label="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred payments related to Sualab Co., Ltd. acquisition</link:label>
    <link:label id="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Deferred Compensation Arrangements, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:to="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_806c0921-3a44-4938-9a1b-79ec425fb806_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CHF_c67f82ac-b994-4fd1-9d8d-17e935433e95_terseLabel_en-US" xlink:label="lab_currency_CHF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_AccumulatedOtherComprehensiveIncomeLossNetOfTax_054cd995-7383-4e24-93bd-ad6aa611c5e8_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AssetsCurrent_0a74100f-bd0d-4555-8f0b-e2f74a0293cd_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeTaxesPaidNet_2899a708-f4bd-472b-87ca-381b3b033f16_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CompanyContributionsVestAtEndOfFourYears_b546d988-2661-43f4-b0b4-021340c37ea4_totalLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_dei_EntitySmallBusiness_a4cee306-1148-4ddc-bf63-14cb918977fe_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_CommonStockDividendsPerShareDeclared_4d1b9c1b-99f4-4016-b33a-8919317876a9_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareDeclared" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash dividend declared per common share</link:label>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareDeclared_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareDeclared" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Dividends, Per Share, Declared</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareDeclared" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareDeclared"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareDeclared" xlink:to="lab_us-gaap_CommonStockDividendsPerShareDeclared" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_a53542b6-c4b4-4e99-a2ec-ac7d55699d13_totalLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_Customer1Member_9aa9df84-cec7-4ff7-9e98-1cc5d3f4b6ef_terseLabel_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 1</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member" xlink:href="cgnx-20221231.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_us-gaap_SignificantAccountingPoliciesTextBlock_af4cb41a-1b1f-429f-9887-212901fa8c07_terseLabel_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DerivativeAssetNotionalAmount_62cfc59c-caa0-43c6-846e-a4ef33870d2c_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_MovementInValuationAllowancesAndReservesRollForward_44a35682-351a-4404-92b0-233abe0e6645_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a810ced3-4e73-4c88-8576-86dbf669d097_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentDisclosureTextBlock_5dbb45e4-ad7b-4d76-9442-a5f43314abc0_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_036e09aa-5e54-4910-b0a7-ceab5b58d6bb_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PropertyPlantAndEquipmentTypeDomain_176743da-9146-414b-bef6-205958912f94_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProceedsFromSaleMaturityAndCollectionsOfInvestments_a67c6509-561f-4e70-8df9-04563d9bb10c_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_8aad3b71-bf51-4044-a5ff-fdbeaed682ff_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_PayablesAndAccrualsAbstract_d264e935-d6db-45d1-adcc-2ea931847af0_terseLabel_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_96065fb2-f001-4ed9-a577-977859a6d318_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ClassOfStockLineItems_b9e7881d-37a9-4e22-bb87-a5a7b4e25194_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OperatingLeaseLiability_1ecc4a9e-fea0-4e34-9221-1aa1ed2c76ff_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_c5bae452-3fa6-4531-86a5-d6b470af1bd5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ValuationAllowancesAndReservesBalance_fc9c03eb-56a5-44d3-b35d-145f56098c3c_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable, allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_ac683df7-be2c-40d5-80bf-61b403a2b84a_periodStartLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance&#160;at Beginning of Period</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_3213f7fe-f63c-4515-a4a3-f4f7aa125640_periodEndLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DerivativeGainLossOnDerivativeNet_5411fc0e-5d6d-4489-a76d-28b9ba14acd1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_a41564db-4a69-48ef-88ce-ca16a26d2329_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2024</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_674bd64d-5cf5-425e-b41c-76fa9019d14a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredTaxAssetsForeignTaxStructureChange_78aaba73-59ae-413a-a623-175d6ae8b52c_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_AvailableForSaleDebtSecuritiesAmortizedCostBasis_d99d7ca6-5729-4932-bc0f-78720db29aa2_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_CorporateBondsFairValueDisclosure_ca934f38-0ea5-4c6c-b475-4cf96bb45e39_terseLabel_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Corporate bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure" xlink:href="cgnx-20221231.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_us-gaap_RestructuringCharges_44ddf95e-3d64-4fde-820f-c2850fb3ef05_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring charges</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_7e8d2704-9483-4024-9517-31f21fe269ec_verboseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_IndemnificationProvisionsTextBlock_5529f1d4-0097-4324-b080-2bbb6e59e257_terseLabel_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_ff8daada-2c3f-4e6e-9a4d-1d2db0a31437_terseLabel_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract" xlink:href="cgnx-20221231.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_cgnx_RepurchaseProgramOctober2018Member_999145cf-16c9-4faa-99b2-08f1fe5f5b27_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramOctober2018Member" xlink:to="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_fae493e0-8624-4ed4-8f86-1f777709cacb_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_HedgingDesignationAxis_0ebb62f1-6411-4e33-b651-e111e63937e6_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_AuditorLocation_8bc05fad-1e2b-45f9-a539-476a5f2a0d67_terseLabel_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_IncomeTaxAuthorityNameAxis_9a1ea957-f2ca-4950-997c-57e9e5b69c0e_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_EntityFilerCategory_6f6da230-69a0-4e30-a413-27ff9f27e736_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_CurrentFederalTaxExpenseBenefit_934acee0-2afa-425c-a0ed-f5bb9d0f05d4_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_country_US_63672685-f89c-4e62-b2bc-7345ea4b3612_terseLabel_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/country-2022.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_LiabilitiesFairValueDisclosureAbstract_b0e92b38-90b0-4789-8f14-678823acfdaa_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AllocatedShareBasedCompensationExpense_64382b51-8c75-4530-a24f-52cb817929e5_verboseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_CommitmentsAndContingencies_8f8ad977-62d0-43e7-bf10-c7a6a981b668_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_dei_SecurityExchangeName_12973ee6-8975-4993-87c5-b43febf538b5_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_1902bee9-db4c-49c8-bd81-60a4fa79048c_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance outstanding, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_b3ccabdf-1673-457d-8370-c644c6f3b6fb_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_05a900bc-bc9a-4edf-a91c-377d2238f19b_terseLabel_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_OtherLiabilitiesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_RevenueFromContractWithCustomerExcludingAssessedTax_3f442766-cb2c-403a-a873-d911dd8063b6_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4704aa9e-1604-4b5f-b111-8ecabd0f06b2_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_9ecd9f30-9727-49c2-8648-8b05f4735bf6_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9a7b530e-c6fe-4644-a26a-0ff10214ee8e_totalLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_DividendsPayableDateDeclaredDayMonthAndYear_39f82379-7b32-48b0-ba0c-7ac37ecc3c0a_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_a3ca694e-6aed-4ff7-bbc8-485ed1b79f44_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_dei_CoverAbstract_12dc5e24-e404-4542-91c1-53b11f59d8b1_terseLabel_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_dei_EntityVoluntaryFilers_c65bc0f6-938b-479e-9bb2-aa5b931535a3_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_EffectiveIncomeTaxRateReconciliationTaxCredits_177d56e9-eb27-428f-b372-da05646acc19_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax credit</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_90ebb806-a76d-4250-abd1-44de74bf2593_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_InvestmentDurationAxis_126d4788-35dc-4c31-861e-a1a9b6af6c88_terseLabel_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis" xlink:href="cgnx-20221231.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_RevenueFromContractWithCustomerTextBlock_157c5547-6076-4be0-acaf-7e1095a5a1f0_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_SegmentReportingAbstract_f67523fa-b83f-42d2-9b76-aefaa4f96922_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_7a0fd76e-b727-4f43-a520-4a6bced9b67c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_9c9c433f-334c-45a1-9a38-0b46c2b95b0b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_LiabilitiesAndStockholdersEquity_62933259-5ea1-4a8f-a6ac-4b42859ac42d_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_AuditInformationAbstract_label_en-US" xlink:label="lab_cgnx_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Audit Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AuditInformationAbstract" xlink:href="cgnx-20221231.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_AccruedVacationCurrent_e135a8c2-eb0a-48a1-87a6-db84bb5f3e38_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_0f7d5147-50a1-492c-8411-34a4f262e7b4_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Remaining Authorized Repurchase 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Remaining Authorized Repurchase Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.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_us-gaap_Cash_05b78491-65fe-416b-b21b-e09d8a0502a5_terseLabel_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_ec4bff02-862d-4eb5-a37b-3015a56e9650_terseLabel_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Foreign Tax Filing Adjustments [Member]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_label_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Foreign Tax Filing Adjustments [Member]</link:label>
    <link:label id="lab_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_documentation_en-US" xlink:label="lab_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete Tax Expense - Foreign Tax Filing Adjustments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" xlink:to="lab_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_b063db7f-3c74-437a-b3a1-8e21789a7079_terseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_NondesignatedMember_0ee4bdfe-f5d6-4147-8a77-6ec863d68c1f_terseLabel_en-US" xlink:label="lab_us-gaap_NondesignatedMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ForeignTaxBenefitGainsTaxedOutsideUSMember_ac0d4d3e-a596-4d05-91e2-35553649943e_terseLabel_en-US" xlink:label="lab_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Benefit - Gains Taxed Outside U.S. [Member]</link:label>
    <link:label id="lab_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember_label_en-US" xlink:label="lab_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Benefit - Gains Taxed Outside U.S. [Member]</link:label>
    <link:label id="lab_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember_documentation_en-US" xlink:label="lab_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Benefit - Gains Taxed Outside U.S.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember" xlink:href="cgnx-20221231.xsd#cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember" xlink:to="lab_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_4e0a0636-5b30-4cc1-b3fb-8d6ca7503c8e_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_PaymentsToAcquireInvestments_c118a341-37fc-4425-9d42-1606c3d0a18e_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_6794f7fe-9eb0-4d76-8295-d8bf048a4bcd_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_97489f02-3db5-410e-8d2c-2b0c1295d9a6_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_37a0a0de-f9d4-4e57-9a48-9af7a0974125_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross realized losses</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_EarningsPerShareDiluted_fe08abb5-3394-4eaa-a13a-cc01ebc72b81_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_26b0aa01-32ff-4710-8aaa-af24c417e9df_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_e93dd547-72a4-4810-96e3-c7c4926142f2_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_894e8bec-a077-40f3-ad79-732b5dc91bf7_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2024</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfAvailableForSaleSecuritiesTable_d54fec3d-68e4-4747-93a5-5b23778ba879_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Available-for-sale Securities [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Available-for-Sale Securities [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_54614572-48f4-4fef-861c-6983feafc100_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_40f84ee5-ee02-4593-a4c6-6efb6a6cee19_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_4129ffaa-13f5-42f4-ad0c-7fa59c1416ae_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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-20221231.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_cgnx_GViVenturesInc.Member_a98b16f9-6da2-4488-be2f-eb953f44d9e2_terseLabel_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GVi Ventures, Inc.</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_label_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:label id="lab_cgnx_GViVenturesInc.Member_documentation_en-US" xlink:label="lab_cgnx_GViVenturesInc.Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GVi Ventures, Inc. [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GViVenturesInc.Member" xlink:href="cgnx-20221231.xsd#cgnx_GViVenturesInc.Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GViVenturesInc.Member" xlink:to="lab_cgnx_GViVenturesInc.Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_7da7f485-e3e3-4d5a-a994-1a4df697b8c1_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis" xlink:to="lab_us-gaap_ShareRepurchaseProgramAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_476529ba-aa79-4780-a9d3-f6fa72e4dacf_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_a5a48dbe-ddda-4a13-924f-c50cbd002d43_terseLabel_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_b50a2907-9a91-4851-a08c-445748b77d57_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_DerivativeFairValueOfDerivativeAsset_32d16be8-296f-4d3e-aad6-d6c1ff63a0b1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_13ca6a7f-7c74-4f8c-82f1-b8e8f2366cd3_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, 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/2022/elts/us-gaap-2022.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_dei_EntityAddressAddressLine1_d3f4abf4-3fb0-4126-ab4c-f9df431bac05_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/dei-2022.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_srt_ProductOrServiceAxis_8a3670ed-867e-4c9e-b634-e9e0ab069343_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_InsuranceRecoveries_870cd225-5d0c-4031-913f-890c830d4bf6_terseLabel_en-US" xlink:label="lab_us-gaap_InsuranceRecoveries" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_TaxCreditCarryforwardTable_2fbf2a71-098e-4452-ac3b-2a01d4f1774e_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_7a85b3c0-da3a-46a1-b860-ddf0651c1e54_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_InventoryDisclosureTextBlock_74812f10-9154-476c-a552-a14c7a9afb4f_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_BuildingMember_cdb2297c-fddc-4597-9575-d2058e8b3ebf_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_InventoryDisclosureAbstract_49363e34-337a-4f41-aa0e-66d23986a43d_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_AgencyBondsFairValueDisclosure_ee0a6031-22b6-472d-b760-c62bd4c63c64_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency bonds</link:label>
    <link:label id="lab_cgnx_AgencyBondsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_AgencyBondsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsFairValueDisclosure" xlink:to="lab_cgnx_AgencyBondsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_34ef62fb-5663-4be4-9028-7db97684e950_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_StockRedeemedOrCalledDuringPeriodShares_20482dff-8d2d-4d44-bccf-c6095b3eac68_terseLabel_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_5097a99b-9ebe-40d6-81b0-d8173170e06d_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_IncomeTaxAuthorityNameDomain_8dd95754-1b61-425b-beba-9c6c3bc804c9_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AdvertisingExpense_b0821c88-ac9e-4083-a390-9f8d46ccabc1_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DisaggregationOfRevenueTableTextBlock_9e95b403-ea8b-44d5-a930-f9e392f22f68_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ProductCostOfRevenueMember_90e42e38-a1de-43e7-a8f7-e4017d780adc_terseLabel_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product cost of revenue.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember" xlink:href="cgnx-20221231.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_RevenueFromContractWithCustomerAbstract_6f998aa2-f557-4ca3-8bb1-84827ff4dd16_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_NoncompeteAgreementsMember_d319c0a2-ae41-46da-a9e1-3a707b5b7997_terseLabel_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_06872b12-e41f-4ef0-9cf4-5e2f57bbf621_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring Reserve by Type of Cost</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring Reserve by Type of Cost [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:to="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_940dce1f-a51e-4b22-b484-657ff0eabc54_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_820d4361-d99d-4588-9212-9a539f949b3f_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/srt-2022.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_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_c6837cfb-023a-434c-b79c-7c4253d05a11_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2027</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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_FairValueByMeasurementFrequencyAxis_44158f11-55bd-4ea8-be15-131c8f265d94_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_0d30c444-96e7-4013-ace2-4b66ce271527_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ComputerHardwareAndSoftwareMember_ed6b2a8a-6658-4e39-a6da-81a6e68821d2_terseLabel_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Hardware and Software Member.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember" xlink:href="cgnx-20221231.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_OtherAccruedLiabilitiesCurrent_a728b381-188a-432f-81d4-7ff3cfb3d01a_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_cgnx_ProductWarrantyPeriod_4d05bdd0-0dd0-426f-aed9-bcf8502e91da_terseLabel_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product warranty period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod" xlink:href="cgnx-20221231.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_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_12e669ec-1957-4f69-ab9f-b6083ff0a230_terseLabel_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible asset impairment charges</link:label>
    <link:label id="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Impairment of Intangible Assets (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:to="lab_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_97bb0b07-e933-473c-b3e9-333bd04b6630_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_currency_EUR_1b3d8b96-d3b3-4668-b1e9-6f659848d862_terseLabel_en-US" xlink:label="lab_currency_EUR" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/currency-2022.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_StatementOfStockholdersEquityAbstract_1b08e791-f52f-4a7a-bc46-7f48f0a68c00_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AdvertisingCostsPolicyTextBlock_f6cb680d-b269-43f1-87ae-d23f5334091a_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_NetCashProvidedByUsedInFinancingActivitiesAbstract_455060dd-1e22-4163-89c2-809e538460eb_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_UncollectibleReceivablesMember_8e043270-3104-413e-86ad-174d25e2258a_terseLabel_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_AssetImpairmentCharges_dcbab8e0-b2f8-4428-b6c4-49af5a1c1519_terseLabel_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible asset impairment charges</link:label>
    <link:label id="lab_us-gaap_AssetImpairmentCharges_label_en-US" xlink:label="lab_us-gaap_AssetImpairmentCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Impairment Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetImpairmentCharges" xlink:to="lab_us-gaap_AssetImpairmentCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_1b6d5b10-148f-44b2-9bbc-f004ef5d7f76_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_DisaggregationOfRevenueLineItems_bb323862-ec6e-44de-ab4b-f1475a0451e2_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_PurchaseCommitmentRemainingMinimumAmountCommitted_e1e52ad0-77fa-48a4-8964-b58a8295cbf9_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_1aadb0a4-2066-4a66-8f79-7ddb2b9b11c8_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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" xmlns:xml="http://www.w3.org/XML/1998/namespace" 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/2022/elts/us-gaap-2022.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:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>12
<FILENAME>cgnx-20221231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with Wdesk from Workiva-->
<!--Copyright 2023 Workiva-->
<!--r:4dc635fe-3454-40d2-97d6-b433e40829c4,g:67c3b2b1-ab2e-47dc-be12-bcd61ff87e88-->
<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-20221231.xsd#CoverPage"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_b7bdec6c-e197-469f-88a1-1e72c708f40f" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_DocumentType_b7bdec6c-e197-469f-88a1-1e72c708f40f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport_d9f752f2-b0ca-4ea8-b189-1319b97d2ca1" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_DocumentAnnualReport_d9f752f2-b0ca-4ea8-b189-1319b97d2ca1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_20f6bdc5-70b2-40c8-858e-6a6b43130803" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_DocumentPeriodEndDate_20f6bdc5-70b2-40c8-858e-6a6b43130803" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_1547bef3-fef2-47a9-91f1-95af9a823796" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_DocumentTransitionReport_1547bef3-fef2-47a9-91f1-95af9a823796" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_e28683d5-9a6c-4e8f-8202-8a71c0d8ebd4" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityFileNumber_e28683d5-9a6c-4e8f-8202-8a71c0d8ebd4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_47898a06-755a-4a6d-b751-4b16dd313e14" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityRegistrantName_47898a06-755a-4a6d-b751-4b16dd313e14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_1b7083f2-2de3-4c81-9b64-c634e40adbaa" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityIncorporationStateCountryCode_1b7083f2-2de3-4c81-9b64-c634e40adbaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_0bb2fafb-cbf7-435c-b0bd-2e42636e4cae" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityTaxIdentificationNumber_0bb2fafb-cbf7-435c-b0bd-2e42636e4cae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_f30240ff-e8a1-49ac-ab15-a1eb225b8a66" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityAddressAddressLine1_f30240ff-e8a1-49ac-ab15-a1eb225b8a66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_a4e50255-365f-4067-bf1e-a2c95f430a08" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityAddressCityOrTown_a4e50255-365f-4067-bf1e-a2c95f430a08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_a4f2a107-f3af-40de-9100-a94c043769ab" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityAddressStateOrProvince_a4f2a107-f3af-40de-9100-a94c043769ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_abe8e418-05d3-48de-b0bb-e0f453157434" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityAddressPostalZipCode_abe8e418-05d3-48de-b0bb-e0f453157434" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_62229588-77bb-4948-a2c7-2f9d20f92a88" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_CityAreaCode_62229588-77bb-4948-a2c7-2f9d20f92a88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_1ab15016-ef05-44a0-bbef-8a8458e99183" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_LocalPhoneNumber_1ab15016-ef05-44a0-bbef-8a8458e99183" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_905c2123-efed-4e6e-9362-a1556c5bfd21" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_Security12bTitle_905c2123-efed-4e6e-9362-a1556c5bfd21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_fa85b4be-884b-40b6-9433-36f3ecb40f7f" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_TradingSymbol_fa85b4be-884b-40b6-9433-36f3ecb40f7f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_f1b99093-4c4b-47d8-91e2-1df6d9cdc35e" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_SecurityExchangeName_f1b99093-4c4b-47d8-91e2-1df6d9cdc35e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_2b5fc285-bf04-45a5-aabb-128c8dca0b72" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_2b5fc285-bf04-45a5-aabb-128c8dca0b72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers_a4dc53f0-6d13-4169-a4ab-a5f3137da919" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityVoluntaryFilers_a4dc53f0-6d13-4169-a4ab-a5f3137da919" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_b4e17586-7f84-42bc-bd1c-c38f4044961d" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityCurrentReportingStatus_b4e17586-7f84-42bc-bd1c-c38f4044961d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_8ab307e7-b9fa-4387-9565-5442b4ecd1b2" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityInteractiveDataCurrent_8ab307e7-b9fa-4387-9565-5442b4ecd1b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_e4d0fb33-bcac-4328-bb81-dd2af2b9bc08" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityFilerCategory_e4d0fb33-bcac-4328-bb81-dd2af2b9bc08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_70b73217-99e8-4611-b64c-5166892a3baa" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntitySmallBusiness_70b73217-99e8-4611-b64c-5166892a3baa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_3d435150-834c-4894-add9-ca6a0254a4c4" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityEmergingGrowthCompany_3d435150-834c-4894-add9-ca6a0254a4c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag_b3e3ba5b-0a92-4b78-a609-7806e96897d1" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_IcfrAuditorAttestationFlag_b3e3ba5b-0a92-4b78-a609-7806e96897d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_ee4bc205-d01b-4052-b8f3-d21cf14bdc04" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityShellCompany_ee4bc205-d01b-4052-b8f3-d21cf14bdc04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat_243d30c9-9a8d-4075-b700-b1b8b53cbe81" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityPublicFloat_243d30c9-9a8d-4075-b700-b1b8b53cbe81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_7bc90409-3f36-4e7e-b317-bca4843e286e" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_7bc90409-3f36-4e7e-b317-bca4843e286e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_4406b2bb-0191-4173-ba96-9039c9e0265f" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_EntityCentralIndexKey_4406b2bb-0191-4173-ba96-9039c9e0265f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_2db8637b-37c3-454c-8f4a-c43fb8587730" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_CurrentFiscalYearEndDate_2db8637b-37c3-454c-8f4a-c43fb8587730" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_4d620d2b-eb6d-4fdc-92dd-e00cdb300629" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_DocumentFiscalYearFocus_4d620d2b-eb6d-4fdc-92dd-e00cdb300629" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_ac144783-5639-4e97-a6e5-95b395cf11a6" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_DocumentFiscalPeriodFocus_ac144783-5639-4e97-a6e5-95b395cf11a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_2b4b51d8-2b78-410c-9e07-aa33bd0a9ffc" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_1367d433-6fe1-47d5-a6a3-002497b02e0c" xlink:to="loc_dei_AmendmentFlag_2b4b51d8-2b78-410c-9e07-aa33bd0a9ffc" 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-20221231.xsd#AuditInformation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AuditInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AuditInformationAbstract_9724c173-28aa-4844-9972-9ccb62006155" xlink:href="cgnx-20221231.xsd#cgnx_AuditInformationAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName_46b11f3f-3490-403e-9f27-b2d06defe326" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_9724c173-28aa-4844-9972-9ccb62006155" xlink:to="loc_dei_AuditorName_46b11f3f-3490-403e-9f27-b2d06defe326" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation_f461d592-08a2-4a3b-999e-aefdbb42549a" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorLocation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_9724c173-28aa-4844-9972-9ccb62006155" xlink:to="loc_dei_AuditorLocation_f461d592-08a2-4a3b-999e-aefdbb42549a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId_4c04d711-9723-4be1-8e44-beb0ab808c80" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorFirmId"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_9724c173-28aa-4844-9972-9ccb62006155" xlink:to="loc_dei_AuditorFirmId_4c04d711-9723-4be1-8e44-beb0ab808c80" 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-20221231.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_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_8e5b6066-f2bc-4ecc-a300-6ba7efdeb3ce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_8e5b6066-f2bc-4ecc-a300-6ba7efdeb3ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_62d72832-310b-4a3b-bfad-aa6aa7b786ca" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_62d72832-310b-4a3b-bfad-aa6aa7b786ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_d722d91d-81e1-41a7-80af-01ccc285e9f9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_GrossProfit_d722d91d-81e1-41a7-80af-01ccc285e9f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_51bedb64-8a5a-4d09-8746-f8b1e8c4f10b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_51bedb64-8a5a-4d09-8746-f8b1e8c4f10b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_a4f5228e-2143-4df0-be37-68a2a118bd27" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_a4f5228e-2143-4df0-be37-68a2a118bd27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_bec2584b-d5f4-41bd-82d0-f8ea5b6dcc28" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LossFromCatastrophes"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_LossFromCatastrophes_bec2584b-d5f4-41bd-82d0-f8ea5b6dcc28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_017bc289-9963-4668-b6a4-3cdda1be9c73" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_RestructuringCharges_017bc289-9963-4668-b6a4-3cdda1be9c73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_bb395a8a-6087-4fa2-83f9-06ad5409feb8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_bb395a8a-6087-4fa2-83f9-06ad5409feb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_51411c68-8b2b-46ac-9e3f-14840730a26f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_OperatingIncomeLoss_51411c68-8b2b-46ac-9e3f-14840730a26f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_be1587ee-d9b8-47ba-b49b-4f1f7ac6e8ea" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_be1587ee-d9b8-47ba-b49b-4f1f7ac6e8ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_4b037b56-5021-463b-bf1a-248cf1e7fee5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_4b037b56-5021-463b-bf1a-248cf1e7fee5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_5627b04c-7864-47f3-bd12-704f485da982" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_5627b04c-7864-47f3-bd12-704f485da982" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_bd848d5a-9133-4523-b0ba-1589be9ddab7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_bd848d5a-9133-4523-b0ba-1589be9ddab7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_774ddb40-7b84-45bb-a5cc-05d5517b5bea" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_774ddb40-7b84-45bb-a5cc-05d5517b5bea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_ad43973b-beb3-407c-b849-ac2469b19cd7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_NetIncomeLoss_ad43973b-beb3-407c-b849-ac2469b19cd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract_993614ce-7a99-4077-ac25-03dc44174ed9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicAbstract"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_EarningsPerShareBasicAbstract_993614ce-7a99-4077-ac25-03dc44174ed9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_fd776b95-1609-44eb-9ddb-ea7fff5c81b9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract_993614ce-7a99-4077-ac25-03dc44174ed9" xlink:to="loc_us-gaap_EarningsPerShareBasic_fd776b95-1609-44eb-9ddb-ea7fff5c81b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract_61a005a5-1389-45d8-b51d-a60e1d271ed8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDilutedAbstract"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_EarningsPerShareDilutedAbstract_61a005a5-1389-45d8-b51d-a60e1d271ed8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_31d8d6f6-f21c-468e-a3d1-47bc692074b5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_61a005a5-1389-45d8-b51d-a60e1d271ed8" xlink:to="loc_us-gaap_EarningsPerShareDiluted_31d8d6f6-f21c-468e-a3d1-47bc692074b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_dd977c79-10d7-4510-bf86-5c6fc7117e7e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_dd977c79-10d7-4510-bf86-5c6fc7117e7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_7e81c196-8645-41f9-be9e-2033118ba0e5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_dd977c79-10d7-4510-bf86-5c6fc7117e7e" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_7e81c196-8645-41f9-be9e-2033118ba0e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_fa8b4a2a-4d87-4552-a10b-b57c36f594fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_dd977c79-10d7-4510-bf86-5c6fc7117e7e" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_fa8b4a2a-4d87-4552-a10b-b57c36f594fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_5e413666-afd9-4909-a95a-488c30cbbf19" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_d25aab5c-15ba-4c2f-9f7b-e9c18ad6d801" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_5e413666-afd9-4909-a95a-488c30cbbf19" 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-20221231.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_e2a74157-cdea-4230-aac3-e9c8dca3e608" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_e96013fe-25df-4f21-a5a1-0d93927f58d9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_e2a74157-cdea-4230-aac3-e9c8dca3e608" xlink:to="loc_us-gaap_NetIncomeLoss_e96013fe-25df-4f21-a5a1-0d93927f58d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_5f727ef8-5c7d-4a6d-8c50-d8d34a27de25" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_e2a74157-cdea-4230-aac3-e9c8dca3e608" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_5f727ef8-5c7d-4a6d-8c50-d8d34a27de25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_631df9b8-37d3-4d8f-b2c2-9bf47636c8f3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_5f727ef8-5c7d-4a6d-8c50-d8d34a27de25" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_631df9b8-37d3-4d8f-b2c2-9bf47636c8f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_688a529a-cfb1-419f-8cf3-d734d38657f2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_5f727ef8-5c7d-4a6d-8c50-d8d34a27de25" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_688a529a-cfb1-419f-8cf3-d734d38657f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_fb82e924-5b5e-4cc2-9b5a-d0873dfb657e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_5f727ef8-5c7d-4a6d-8c50-d8d34a27de25" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_fb82e924-5b5e-4cc2-9b5a-d0873dfb657e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_9a53f952-9e8b-4710-8adb-6046e46df13b" xlink:href="cgnx-20221231.xsd#cgnx_CurrencytranslationadjustmentAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_e2a74157-cdea-4230-aac3-e9c8dca3e608" xlink:to="loc_cgnx_CurrencytranslationadjustmentAbstract_9a53f952-9e8b-4710-8adb-6046e46df13b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_f68d7438-d2ba-42f3-a4d2-3ea699f6bb73" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_9a53f952-9e8b-4710-8adb-6046e46df13b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_f68d7438-d2ba-42f3-a4d2-3ea699f6bb73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_6b55707f-1232-4180-96f2-676f68c77fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_9a53f952-9e8b-4710-8adb-6046e46df13b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_6b55707f-1232-4180-96f2-676f68c77fb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_a36da683-090d-43bc-98ff-097c9706e73b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_e2a74157-cdea-4230-aac3-e9c8dca3e608" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_a36da683-090d-43bc-98ff-097c9706e73b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_4dda25ca-3344-43e5-a4d7-c4c11b65cf99" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_e2a74157-cdea-4230-aac3-e9c8dca3e608" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_4dda25ca-3344-43e5-a4d7-c4c11b65cf99" 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-20221231.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_061d09bb-1bb2-4b1f-be5e-a0e46d6162bc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_75cd23bc-ef1b-488c-a876-ba291203eca8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_061d09bb-1bb2-4b1f-be5e-a0e46d6162bc" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_75cd23bc-ef1b-488c-a876-ba291203eca8" 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-20221231.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_e32c9fd5-2d5a-4f06-9eea-0f11fd1f5219" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_e32c9fd5-2d5a-4f06-9eea-0f11fd1f5219" xlink:to="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5ff8ca10-8544-46f3-8566-72f1e7f7e039" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5ff8ca10-8544-46f3-8566-72f1e7f7e039" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_e97ecd2b-8d18-4beb-b49c-058438f39c43" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_e97ecd2b-8d18-4beb-b49c-058438f39c43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_07e06b09-880d-450d-8645-c912d347cd98" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_07e06b09-880d-450d-8645-c912d347cd98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_d722072e-ad43-4aa2-aaaa-ed82d83146b4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_d722072e-ad43-4aa2-aaaa-ed82d83146b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_f7f994d0-459f-4ef5-97f2-91cc85b93c44" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_InventoryNet_f7f994d0-459f-4ef5-97f2-91cc85b93c44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_dfee0b71-137d-4fb8-99c2-de5350ea11cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_dfee0b71-137d-4fb8-99c2-de5350ea11cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_83876cda-d8e2-4cc6-9443-2d4d08304882" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_34489e75-ee46-4eea-90fb-f3f63598093d" xlink:to="loc_us-gaap_AssetsCurrent_83876cda-d8e2-4cc6-9443-2d4d08304882" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_5542f224-f502-4fde-9ed9-e54eb76e9bec" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_LongTermInvestments_5542f224-f502-4fde-9ed9-e54eb76e9bec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_facf6945-4d68-4087-b845-98019fb996e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_facf6945-4d68-4087-b845-98019fb996e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_5d940653-c9ca-49b7-b9d6-0e9516539ca9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_5d940653-c9ca-49b7-b9d6-0e9516539ca9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_284d9294-aa99-45f2-a93c-6f44403a7e0b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_Goodwill_284d9294-aa99-45f2-a93c-6f44403a7e0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_cd0b6b5a-b3c0-45b1-bca4-7d6d752c0c51" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_cd0b6b5a-b3c0-45b1-bca4-7d6d752c0c51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_af77a640-5331-4039-997c-189cb0504141" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_af77a640-5331-4039-997c-189cb0504141" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_dd968822-a08d-444f-b127-ad9b1f735aaa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_dd968822-a08d-444f-b127-ad9b1f735aaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_c597ec29-a9d1-498e-82d2-52536e0e2725" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_f71a5ffe-54c0-4d6d-882f-6af9b44877bd" xlink:to="loc_us-gaap_Assets_c597ec29-a9d1-498e-82d2-52536e0e2725" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_e32c9fd5-2d5a-4f06-9eea-0f11fd1f5219" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_830496ef-860e-41f0-a883-54c097013f9a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:to="loc_us-gaap_AccountsPayableCurrent_830496ef-860e-41f0-a883-54c097013f9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_9f7ec468-6695-4ceb-98c2-d3a69f2ea253" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_9f7ec468-6695-4ceb-98c2-d3a69f2ea253" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_11f4653a-b4d4-4d38-abc8-2ff64be3c9ab" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_11f4653a-b4d4-4d38-abc8-2ff64be3c9ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_43ad958e-04d3-4757-8a14-16655f61b920" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_43ad958e-04d3-4757-8a14-16655f61b920" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_e70e1919-96b0-47c7-b71e-f13a90873582" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_e70e1919-96b0-47c7-b71e-f13a90873582" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_c4d25ae4-88fd-4623-8507-4cc3be77dcd6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_06da0c03-2b4d-43b8-97fd-6a11fc47d600" xlink:to="loc_us-gaap_LiabilitiesCurrent_c4d25ae4-88fd-4623-8507-4cc3be77dcd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_7637aede-2fb1-425a-9bd6-fd90639e1f5a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_7637aede-2fb1-425a-9bd6-fd90639e1f5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_670ff745-9d79-4b5c-9b75-03e3781a71ca" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_670ff745-9d79-4b5c-9b75-03e3781a71ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_ffd787e8-6d4d-4444-9ecd-49afa4985892" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_ffd787e8-6d4d-4444-9ecd-49afa4985892" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_693eacbf-f761-412a-9e42-ff68ee65f702" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_693eacbf-f761-412a-9e42-ff68ee65f702" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_6c089634-b6da-4c5a-91b3-897ab84a82f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_6c089634-b6da-4c5a-91b3-897ab84a82f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_104bbcb0-1684-4cf0-b33e-ff698ad2e672" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_Liabilities_104bbcb0-1684-4cf0-b33e-ff698ad2e672" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_fe30499e-4799-4871-b4de-f8553bedebfa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_CommitmentsAndContingencies_fe30499e-4799-4871-b4de-f8553bedebfa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_cf9ae714-2c13-4398-91dc-e1234aa6c7d0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_cf9ae714-2c13-4398-91dc-e1234aa6c7d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_274b34b1-07fb-4a35-b26d-fca6cfb3d4ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_274b34b1-07fb-4a35-b26d-fca6cfb3d4ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_43d01c33-4c44-4235-96df-d493b529980e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_43d01c33-4c44-4235-96df-d493b529980e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_ec8b0011-307f-4cc4-ba5b-3e831c7e5481" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:to="loc_us-gaap_CommonStockValueOutstanding_ec8b0011-307f-4cc4-ba5b-3e831c7e5481" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_1fb1314c-61a0-4f3f-a695-2107718ef418" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_1fb1314c-61a0-4f3f-a695-2107718ef418" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_5fec98f5-005c-4f6b-8255-81cd4bdfaead" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_5fec98f5-005c-4f6b-8255-81cd4bdfaead" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_e36fd190-6463-40fe-b4aa-8ba2ca7c0ca3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_e36fd190-6463-40fe-b4aa-8ba2ca7c0ca3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_f51fe767-1010-49c0-abf3-fdfd336e238c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_f7673ae9-a404-40b9-9e39-bb252f4c0506" xlink:to="loc_us-gaap_StockholdersEquity_f51fe767-1010-49c0-abf3-fdfd336e238c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_5c3b4337-3b26-4473-ac19-cbf9940ba083" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e8583fe1-66fb-4f1c-b022-a27a66adff2b" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_5c3b4337-3b26-4473-ac19-cbf9940ba083" 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-20221231.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_40239c87-699e-4e81-b571-b174a096a227" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_9b08ac26-b82b-499c-ac57-92f8b3148a6f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_9b08ac26-b82b-499c-ac57-92f8b3148a6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_5998ece2-cdd6-4f5d-b680-d7020b16078d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_5998ece2-cdd6-4f5d-b680-d7020b16078d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_c71ad75b-fabb-4446-8fb9-c85404e7ad7b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_c71ad75b-fabb-4446-8fb9-c85404e7ad7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_d8bd6d87-701c-4319-80d1-62acdab5b86f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_d8bd6d87-701c-4319-80d1-62acdab5b86f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_e6bd78e3-4df7-4a4b-887f-4b718cce1aa3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_e6bd78e3-4df7-4a4b-887f-4b718cce1aa3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_8282adce-9a37-4d45-8174-05139d8d654b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_PreferredStockSharesIssued_8282adce-9a37-4d45-8174-05139d8d654b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_1108263f-6ff6-470a-865a-e19790e8ef29" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_1108263f-6ff6-470a-865a-e19790e8ef29" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_2e44053f-b00b-4425-b618-4a18dc7573bb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_2e44053f-b00b-4425-b618-4a18dc7573bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_20a4fefd-5c68-474a-8b98-6fd89bde64b2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_20a4fefd-5c68-474a-8b98-6fd89bde64b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_87052c3d-f697-4058-bd67-f8bf26ffbb8d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_CommonStockSharesIssued_87052c3d-f697-4058-bd67-f8bf26ffbb8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_dee37aa7-398c-4deb-8bfe-3388b92591b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_40239c87-699e-4e81-b571-b174a096a227" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_dee37aa7-398c-4deb-8bfe-3388b92591b3" 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-20221231.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_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4172252d-3d68-445d-aca1-4d0f09d6cffc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4172252d-3d68-445d-aca1-4d0f09d6cffc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_9923c7f8-ec0f-499a-a201-101b95418287" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4172252d-3d68-445d-aca1-4d0f09d6cffc" xlink:to="loc_us-gaap_NetIncomeLoss_9923c7f8-ec0f-499a-a201-101b95418287" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4172252d-3d68-445d-aca1-4d0f09d6cffc" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_d784c8ea-0787-495f-92e4-df8a09b6fb49" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_StockOptionPlanExpense_d784c8ea-0787-495f-92e4-df8a09b6fb49" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_3c5d4232-7b6b-42ba-abc2-eb7560628288" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_Depreciation_3c5d4232-7b6b-42ba-abc2-eb7560628288" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_62363434-61a5-416f-ac72-cae122292d8f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_62363434-61a5-416f-ac72-cae122292d8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_2daa9ea5-59f8-4783-8e83-5bb531d295c1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_2daa9ea5-59f8-4783-8e83-5bb531d295c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_c2139423-cf36-44b7-b08d-a5baa2ddee87" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_c2139423-cf36-44b7-b08d-a5baa2ddee87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes_173d4f0d-96a3-41db-aa1c-d6b760581a5b" xlink:href="cgnx-20221231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_cgnx_NonCashLossFromCatastrophes_173d4f0d-96a3-41db-aa1c-d6b760581a5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_ade437ca-3d2c-4b93-981a-e8346d9dd7df" xlink:href="cgnx-20221231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_ade437ca-3d2c-4b93-981a-e8346d9dd7df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_5d1303c8-7e41-421a-b74f-e756ee58918e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_5d1303c8-7e41-421a-b74f-e756ee58918e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_80a7f402-bee9-4a01-9b59-242fa57d03bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_80a7f402-bee9-4a01-9b59-242fa57d03bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_950aedb2-74cd-4521-81cc-9fe47b974fe9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_950aedb2-74cd-4521-81cc-9fe47b974fe9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_81e010d4-b6c2-43c6-af0c-6432b5c5a220" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_81e010d4-b6c2-43c6-af0c-6432b5c5a220" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_451cd0b4-a0f6-46a3-8b0b-fb307872de7d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_451cd0b4-a0f6-46a3-8b0b-fb307872de7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_1c789ad8-5b92-4b0a-8c0a-2b98794791d3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_1c789ad8-5b92-4b0a-8c0a-2b98794791d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_90789ebc-2ded-4538-8fce-6996c1e4eb60" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_90789ebc-2ded-4538-8fce-6996c1e4eb60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_26d4da91-fcac-4cd8-83b0-9e752727d928" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_26d4da91-fcac-4cd8-83b0-9e752727d928" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_78120527-5e94-47f4-8171-915526179feb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_78120527-5e94-47f4-8171-915526179feb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_9cdaefc0-9409-4645-9763-b960f0e6248b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_9cdaefc0-9409-4645-9763-b960f0e6248b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_af1f9ae6-579a-4866-947f-fee12c54279c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_af1f9ae6-579a-4866-947f-fee12c54279c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_c73a0251-2ea4-43f8-9d91-b77668b7ae2d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_c73a0251-2ea4-43f8-9d91-b77668b7ae2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_61f0c003-d751-4be3-8cd5-186bae64c868" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_61f0c003-d751-4be3-8cd5-186bae64c868" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_17e3df6d-c507-4647-9555-a0e23c4027f7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_ebad2fd6-b408-4898-b0e4-48bb8be79175" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_17e3df6d-c507-4647-9555-a0e23c4027f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_86a56052-cf97-48c8-9d71-35523d768af1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_4172252d-3d68-445d-aca1-4d0f09d6cffc" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_86a56052-cf97-48c8-9d71-35523d768af1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_8b901328-ec9b-4a5b-8d80-5bd098f3e1a3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_8b901328-ec9b-4a5b-8d80-5bd098f3e1a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_95f926d2-9bf2-41f9-9db7-b9b2bc32e52a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_95f926d2-9bf2-41f9-9db7-b9b2bc32e52a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_b1f6d631-60b3-4358-ac80-b8ef49c89e5b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_b1f6d631-60b3-4358-ac80-b8ef49c89e5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_70fc339c-c43d-438b-bd1d-1e085a97f6ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_70fc339c-c43d-438b-bd1d-1e085a97f6ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_50cef3d3-8fe0-4a43-92f2-3645c646546a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_07ef00d0-c989-4527-9cf0-3d0536c19a5d" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_50cef3d3-8fe0-4a43-92f2-3645c646546a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_12067d25-54e8-400d-8c50-77b60f027b60" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_12067d25-54e8-400d-8c50-77b60f027b60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_fd4168e9-f34f-41dc-9c76-b3b78cccbcf8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_fd4168e9-f34f-41dc-9c76-b3b78cccbcf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_15227e2b-b4d9-4af1-9756-b061d998144a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_15227e2b-b4d9-4af1-9756-b061d998144a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_544c1d9b-ddcb-4679-8e17-4beaeffdb804" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_544c1d9b-ddcb-4679-8e17-4beaeffdb804" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_1da62697-38b4-45f2-9458-e9e54e96c477" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_4014fed5-011b-473a-b079-7e04b9f0b0f4" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_1da62697-38b4-45f2-9458-e9e54e96c477" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_81a527a6-1d9d-4dbf-b055-909e79ad7b1c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_81a527a6-1d9d-4dbf-b055-909e79ad7b1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_1d111667-861d-4372-b75e-2f62bf0e64f5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_1d111667-861d-4372-b75e-2f62bf0e64f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_32724f53-3b39-4867-8833-58a599a751cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_32724f53-3b39-4867-8833-58a599a751cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_08987281-c5e4-48e2-9b7e-1e175b8539b6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_86c4e8f9-df7b-4892-8fe8-10d26074bf64" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_08987281-c5e4-48e2-9b7e-1e175b8539b6" 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-20221231.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_f51fd34e-bd1c-4293-a58d-6524f3cb32a0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_f51fd34e-bd1c-4293-a58d-6524f3cb32a0" xlink:to="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_8321923e-c99f-4109-b627-e787fc854272" xlink:to="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_25479c06-4063-4716-b5c4-0ccffaf39f61" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_CommonStockMember_25479c06-4063-4716-b5c4-0ccffaf39f61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_f3c18969-2a3d-463b-ab63-45924de50622" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_f3c18969-2a3d-463b-ab63-45924de50622" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_0c8a22bf-b7c7-434a-8604-d6421026b36f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_RetainedEarningsMember_0c8a22bf-b7c7-434a-8604-d6421026b36f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_51a50413-44c1-4a51-9090-9c940967ef33" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_1e19dc6c-8b0b-4e7d-bad5-34907395a7bc" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_51a50413-44c1-4a51-9090-9c940967ef33" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_c40d03ba-a8d8-41b4-af0f-1fee9d36b571" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_fa703dd5-79a2-4540-a831-0b367807ce3a" xlink:to="loc_us-gaap_StatementLineItems_c40d03ba-a8d8-41b4-af0f-1fee9d36b571" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_c40d03ba-a8d8-41b4-af0f-1fee9d36b571" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_3cd38de8-50e6-4eab-aef8-cf85f38009cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockholdersEquity_3cd38de8-50e6-4eab-aef8-cf85f38009cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_85653113-557a-4e77-a2d8-046ae1094bb7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_CommonStockSharesIssued_85653113-557a-4e77-a2d8-046ae1094bb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_af810229-fe6a-4c4d-9ab8-c6aaaa6cd3e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_af810229-fe6a-4c4d-9ab8-c6aaaa6cd3e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6a298f13-493f-466f-b465-928d9d240e8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6a298f13-493f-466f-b465-928d9d240e8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_3a97a9f8-a5fc-4ae1-a253-c5b0ed1648b6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_3a97a9f8-a5fc-4ae1-a253-c5b0ed1648b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_ba76b5aa-1cf2-49b6-880a-360b0630689d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_ba76b5aa-1cf2-49b6-880a-360b0630689d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_6e77e82b-15af-41ce-8c0e-bd7bf649c53d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_6e77e82b-15af-41ce-8c0e-bd7bf649c53d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash_fbc70dfa-3cc5-4fd4-992a-13c21c4fee3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_DividendsCommonStockCash_fbc70dfa-3cc5-4fd4-992a-13c21c4fee3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_d1ba9bfa-d5be-4719-86da-6e75a5728d1e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_NetIncomeLoss_d1ba9bfa-d5be-4719-86da-6e75a5728d1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_815a18cc-46d1-48f4-8756-5d3f41208c24" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_815a18cc-46d1-48f4-8756-5d3f41208c24" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_24f537be-6460-4176-b2c7-cd7b8592e70d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_24f537be-6460-4176-b2c7-cd7b8592e70d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2207eadc-b722-4c86-a6fe-ac6b8fe492dc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2207eadc-b722-4c86-a6fe-ac6b8fe492dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_47409ae2-e293-4709-bc4d-dde569cd9255" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_47409ae2-e293-4709-bc4d-dde569cd9255" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_32e8e0e0-f44b-4415-82a9-8266c256fdd2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_StockholdersEquity_32e8e0e0-f44b-4415-82a9-8266c256fdd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_426fd3e0-18cb-4beb-92df-52f7b2aa5475" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_7f2fe3b7-ff4e-404a-a316-42e3b98b0f58" xlink:to="loc_us-gaap_CommonStockSharesIssued_426fd3e0-18cb-4beb-92df-52f7b2aa5475" 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-20221231.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_550ef335-d322-46b1-8c2a-22d847e01b3b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_973aef68-f6bd-43b4-90ad-c8417db08983" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_550ef335-d322-46b1-8c2a-22d847e01b3b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_973aef68-f6bd-43b4-90ad-c8417db08983" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_0ba241de-67ef-4584-99ef-b5ed4d9b5436" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_550ef335-d322-46b1-8c2a-22d847e01b3b" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_0ba241de-67ef-4584-99ef-b5ed4d9b5436" 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-20221231.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_71664661-b2fc-473a-87cf-8ed01c44ef09" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock_2f94d9f1-f470-4026-a137-43e45712832c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SignificantAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_71664661-b2fc-473a-87cf-8ed01c44ef09" xlink:to="loc_us-gaap_SignificantAccountingPoliciesTextBlock_2f94d9f1-f470-4026-a137-43e45712832c" 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-20221231.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_369b8f3f-edeb-421b-bd99-f8e00e963795" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_980072dd-ecd2-4727-ab1a-54b86c97d688" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_369b8f3f-edeb-421b-bd99-f8e00e963795" xlink:to="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_980072dd-ecd2-4727-ab1a-54b86c97d688" 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-20221231.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_9e146245-6916-465b-b1cc-1c80435f777b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_c3f6f153-bd6a-42f3-b037-577a33ba9167" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_9e146245-6916-465b-b1cc-1c80435f777b" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_c3f6f153-bd6a-42f3-b037-577a33ba9167" 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-20221231.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_bbb0147e-1260-440c-b430-3844ccf70b36" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_484643c7-ef91-4309-8a89-107b89c4a300" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_bbb0147e-1260-440c-b430-3844ccf70b36" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_484643c7-ef91-4309-8a89-107b89c4a300" 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-20221231.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_e9bea7a1-03bf-4519-95b8-69da2232b449" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_e536b809-5817-41ab-99d8-b070a031461b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_e9bea7a1-03bf-4519-95b8-69da2232b449" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_e536b809-5817-41ab-99d8-b070a031461b" 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-20221231.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_ead83f36-2506-4a26-8477-37393766c65f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_9e20d9eb-56fb-4078-9d72-2871212735e5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ead83f36-2506-4a26-8477-37393766c65f" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_9e20d9eb-56fb-4078-9d72-2871212735e5" 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-20221231.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_a1af008e-0fb2-4a15-9fb3-86360bf86af6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_95e62643-2773-413c-9337-f0909632b5a4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasesOfLessorDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a1af008e-0fb2-4a15-9fb3-86360bf86af6" xlink:to="loc_us-gaap_OperatingLeasesOfLessorDisclosureTextBlock_95e62643-2773-413c-9337-f0909632b5a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_586e88a9-f97c-4bd6-bebc-24294cecfbd2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a1af008e-0fb2-4a15-9fb3-86360bf86af6" xlink:to="loc_us-gaap_LesseeOperatingLeasesTextBlock_586e88a9-f97c-4bd6-bebc-24294cecfbd2" 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-20221231.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_b87d2b6e-dcfc-40d5-b592-dfa3a6d0dc43" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_0dc4fbda-cbcb-4bb2-b10e-b4bdf6c36e41" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_b87d2b6e-dcfc-40d5-b592-dfa3a6d0dc43" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_0dc4fbda-cbcb-4bb2-b10e-b4bdf6c36e41" 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-20221231.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_2348188b-ec42-46a0-8b13-19f5c03e828b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_0b84b7cb-1a3d-4124-9703-d31926765cac" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2348188b-ec42-46a0-8b13-19f5c03e828b" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_0b84b7cb-1a3d-4124-9703-d31926765cac" 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-20221231.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_7c4824f0-9595-4e15-b1a8-48a296108502" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_2f9191bc-f8ab-432f-bb5b-78ba1a8e76cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_7c4824f0-9595-4e15-b1a8-48a296108502" xlink:to="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_2f9191bc-f8ab-432f-bb5b-78ba1a8e76cb" 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-20221231.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_28aba57d-6b50-4cac-a8c8-96051f7abccf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_c7c07d9b-df27-4ce8-9ee8-67dfc28b0011" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_28aba57d-6b50-4cac-a8c8-96051f7abccf" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_c7c07d9b-df27-4ce8-9ee8-67dfc28b0011" 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-20221231.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_8c537b41-6e8f-466f-bdce-86efd2f71e1e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GuaranteesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_53c37241-d9a1-4e35-880d-6bb78a1663cc" xlink:href="cgnx-20221231.xsd#cgnx_IndemnificationProvisionsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_8c537b41-6e8f-466f-bdce-86efd2f71e1e" xlink:to="loc_cgnx_IndemnificationProvisionsTextBlock_53c37241-d9a1-4e35-880d-6bb78a1663cc" 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-20221231.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_afc6605e-9dea-4652-bd9b-6790558176db" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_7c1d7554-6f79-4a01-bc83-f6bf5b5cbbcf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_afc6605e-9dea-4652-bd9b-6790558176db" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_7c1d7554-6f79-4a01-bc83-f6bf5b5cbbcf" 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-20221231.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_e95f71f8-00d9-4f51-93e7-0a2250ee1ac9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_779a2f6c-9196-4d8a-baa7-998f9bdc31c0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_e95f71f8-00d9-4f51-93e7-0a2250ee1ac9" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_779a2f6c-9196-4d8a-baa7-998f9bdc31c0" 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-20221231.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_ed03fbc3-1674-4dc2-9126-2bb8402ddf31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_cdaf9e84-bfba-4468-a1df-40ff0c13097d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_ed03fbc3-1674-4dc2-9126-2bb8402ddf31" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_cdaf9e84-bfba-4468-a1df-40ff0c13097d" 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-20221231.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_d238bd10-102e-4197-902c-dd07ef470eb6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_b5df15f0-aed9-4196-aeb4-05f2dc6d9cd0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_d238bd10-102e-4197-902c-dd07ef470eb6" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_b5df15f0-aed9-4196-aeb4-05f2dc6d9cd0" 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-20221231.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_282fbe8a-67b1-4b06-9322-147201c4fbfe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_67d76090-3e1f-49f5-b9cd-e4b7500ed01b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_282fbe8a-67b1-4b06-9322-147201c4fbfe" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_67d76090-3e1f-49f5-b9cd-e4b7500ed01b" 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-20221231.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_c087f73b-b757-44a7-9a88-303983076b57" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_5a4931b3-fe6b-4410-94c0-ce0972eb6f4b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_c087f73b-b757-44a7-9a88-303983076b57" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_5a4931b3-fe6b-4410-94c0-ce0972eb6f4b" 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-20221231.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_6f9cc519-a8a3-499c-966b-6bcff60975b6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_296069a1-8cf4-4f21-9bde-05c2506270cd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_6f9cc519-a8a3-499c-966b-6bcff60975b6" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_296069a1-8cf4-4f21-9bde-05c2506270cd" 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-20221231.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_620b9d53-37fa-44b0-ad18-d82a93bae888" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_508f3c99-c102-4bef-a3ee-de6f2d876235" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_620b9d53-37fa-44b0-ad18-d82a93bae888" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_508f3c99-c102-4bef-a3ee-de6f2d876235" 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-20221231.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_d28e1e5d-edff-458a-bc6d-32b71ffbcfe5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock_b042d057-a66c-409e-9d10-fe8128e92a7d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_d28e1e5d-edff-458a-bc6d-32b71ffbcfe5" xlink:to="loc_us-gaap_BusinessCombinationDisclosureTextBlock_b042d057-a66c-409e-9d10-fe8128e92a7d" 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-20221231.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_d97c793b-0311-45fb-afe0-226521141a5b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CatastropheTextBlock_ea3c4c78-8ffe-4928-8f12-fb919592caee" xlink:href="cgnx-20221231.xsd#cgnx_CatastropheTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_d97c793b-0311-45fb-afe0-226521141a5b" xlink:to="loc_cgnx_CatastropheTextBlock_ea3c4c78-8ffe-4928-8f12-fb919592caee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringCharges"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringCharges" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_cfa0fd2e-c60f-48d7-80a9-f5e55d7cc1be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_b9d1840c-ac74-4880-99a1-04d9468c2564" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_cfa0fd2e-c60f-48d7-80a9-f5e55d7cc1be" xlink:to="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_b9d1840c-ac74-4880-99a1-04d9468c2564" 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-20221231.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_d745d8e6-c6bb-4b82-b378-499151be2f73" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_130915f5-01c7-4161-b66d-8feac91ac48f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_d745d8e6-c6bb-4b82-b378-499151be2f73" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_130915f5-01c7-4161-b66d-8feac91ac48f" 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-20221231.xsd#ScheduleIIValuationandQualifyingAccounts"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_3c06f7da-57a7-48fe-b4e1-86c99448ce7c" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_468b3e61-b972-45dc-acdf-56aea829eaa4" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_3c06f7da-57a7-48fe-b4e1-86c99448ce7c" xlink:to="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_468b3e61-b972-45dc-acdf-56aea829eaa4" 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-20221231.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_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_7b857852-f32d-45a2-acd9-09505293f7a6" xlink:href="cgnx-20221231.xsd#cgnx_NatureOfOperationsPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_cgnx_NatureOfOperationsPolicyTextBlock_7b857852-f32d-45a2-acd9-09505293f7a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates_3d9ec8c2-ce1f-4def-be3d-18a54acd0b11" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UseOfEstimates"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_UseOfEstimates_3d9ec8c2-ce1f-4def-be3d-18a54acd0b11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock_ee80376b-1c0d-4133-b710-32b1f46c4047" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConsolidationPolicyTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_ConsolidationPolicyTextBlock_ee80376b-1c0d-4133-b710-32b1f46c4047" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_954f0de5-b879-4c19-b005-4dbd8b2a6511" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_954f0de5-b879-4c19-b005-4dbd8b2a6511" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_d22cde03-225e-4af4-9e45-fcee4a53786d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_d22cde03-225e-4af4-9e45-fcee4a53786d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_c44a086f-d6a4-4910-afd9-b2985c468fac" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_c44a086f-d6a4-4910-afd9-b2985c468fac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock_75646c90-ef9a-48a5-b7d2-5db3d0c296f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_InvestmentPolicyTextBlock_75646c90-ef9a-48a5-b7d2-5db3d0c296f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_2916372d-2982-49b4-b3f8-f75389cfd645" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_2916372d-2982-49b4-b3f8-f75389cfd645" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_6a01e680-91f7-4d6f-b423-bab903147876" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_6a01e680-91f7-4d6f-b423-bab903147876" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_d1a048bd-7af2-4f62-a536-898c83fd0da1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_d1a048bd-7af2-4f62-a536-898c83fd0da1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalUseSoftwarePolicy_7b9406f8-85a5-4f9f-b29e-39c3ae423720" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InternalUseSoftwarePolicy"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_InternalUseSoftwarePolicy_7b9406f8-85a5-4f9f-b29e-39c3ae423720" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock_d20d979f-86c0-43d4-84df-7f61f9558189" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_LesseeLeasesPolicyTextBlock_d20d979f-86c0-43d4-84df-7f61f9558189" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_41880588-ac7c-4343-9eb0-43b18d42e4bf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_41880588-ac7c-4343-9eb0-43b18d42e4bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_2ca3f19b-38f5-416c-8aa1-585d0051f088" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_2ca3f19b-38f5-416c-8aa1-585d0051f088" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy_2bef3e8d-1f72-4ebc-bc2a-a0d0184320d4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StandardProductWarrantyPolicy"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_StandardProductWarrantyPolicy_2bef3e8d-1f72-4ebc-bc2a-a0d0184320d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_f44e2fa2-a127-4412-bb1f-5dad4376773c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_f44e2fa2-a127-4412-bb1f-5dad4376773c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock_627f3156-6113-40c4-9577-b54e36cd6d96" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativesPolicyTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_DerivativesPolicyTextBlock_627f3156-6113-40c4-9577-b54e36cd6d96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock_75c26b71-653b-4f52-9e1b-6739f88e3c37" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRecognitionPolicyTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_RevenueRecognitionPolicyTextBlock_75c26b71-653b-4f52-9e1b-6739f88e3c37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_d14ace53-d939-4e86-8b3c-08255f75d315" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_d14ace53-d939-4e86-8b3c-08255f75d315" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_85c3fa44-801c-4e71-a00f-dcf0b949bac8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_85c3fa44-801c-4e71-a00f-dcf0b949bac8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_2ae9d06a-e0e7-4b41-87b7-93266bc99edb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_2ae9d06a-e0e7-4b41-87b7-93266bc99edb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_8f88066d-3c9a-4cea-9d2a-a3b2a947f380" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_8f88066d-3c9a-4cea-9d2a-a3b2a947f380" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock_5d6840a3-6a7b-495d-8b53-9147ed456700" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_EarningsPerSharePolicyTextBlock_5d6840a3-6a7b-495d-8b53-9147ed456700" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_6ed4a7eb-7eec-4015-9df0-a510174b074a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_6ed4a7eb-7eec-4015-9df0-a510174b074a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_c16fb715-4b3f-476b-8663-8e9d9f7acb8d" xlink:href="cgnx-20221231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_c16fb715-4b3f-476b-8663-8e9d9f7acb8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy_9ed3d1d8-b8a4-4f5f-b682-b8831ca420d9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_BusinessCombinationsPolicy_9ed3d1d8-b8a4-4f5f-b682-b8831ca420d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_e73540f8-1c47-4caf-8731-fa01f429321e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_e73540f8-1c47-4caf-8731-fa01f429321e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_f5f70aa8-2992-4103-b4be-b1a8c0672834" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6bae6a7f-5a64-4e0f-befa-cd67e7fdeca9" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_f5f70aa8-2992-4103-b4be-b1a8c0672834" 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-20221231.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_638a4997-ea8e-4121-99f8-4ab12f7be25d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_2de20342-e49a-4765-9c9c-e8e628c29141" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_638a4997-ea8e-4121-99f8-4ab12f7be25d" xlink:to="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_2de20342-e49a-4765-9c9c-e8e628c29141" 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-20221231.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_d41b4671-f611-4cc0-b9c4-cced6df8901b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_a268f390-74f8-4957-9d4d-99f4e12b9b73" xlink:href="cgnx-20221231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d41b4671-f611-4cc0-b9c4-cced6df8901b" xlink:to="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_a268f390-74f8-4957-9d4d-99f4e12b9b73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_03a8eb02-403f-4a4f-b7c2-87abdc624982" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d41b4671-f611-4cc0-b9c4-cced6df8901b" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_03a8eb02-403f-4a4f-b7c2-87abdc624982" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_f2b7d9da-5fbd-4619-b8f5-d37add83a02b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d41b4671-f611-4cc0-b9c4-cced6df8901b" xlink:to="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_f2b7d9da-5fbd-4619-b8f5-d37add83a02b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_a561fef1-7f54-4b5f-b32b-3311eba4b4aa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d41b4671-f611-4cc0-b9c4-cced6df8901b" xlink:to="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_a561fef1-7f54-4b5f-b32b-3311eba4b4aa" 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-20221231.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_6da507ff-8fe2-4af1-8e6c-b52f44493ba7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_ce2644f2-a308-4bb8-b96f-4d4da16d6c21" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_6da507ff-8fe2-4af1-8e6c-b52f44493ba7" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_ce2644f2-a308-4bb8-b96f-4d4da16d6c21" 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-20221231.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_473eb777-1c7b-467f-8edf-10f833f0340a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_49ad2b39-edcf-4dd4-a281-4f04d7a328a2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_473eb777-1c7b-467f-8edf-10f833f0340a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_49ad2b39-edcf-4dd4-a281-4f04d7a328a2" 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-20221231.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_bd6a733a-4f83-472d-9e42-7aa34ecf5a85" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_7be96db9-6267-41f9-9a8c-583f2980f822" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_bd6a733a-4f83-472d-9e42-7aa34ecf5a85" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_7be96db9-6267-41f9-9a8c-583f2980f822" 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-20221231.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_87bfa931-0d24-4e93-bbdd-812a1c531c3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_3697b1f2-1cfd-496c-9b7f-56f94aa126b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_87bfa931-0d24-4e93-bbdd-812a1c531c3d" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_3697b1f2-1cfd-496c-9b7f-56f94aa126b3" 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-20221231.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_6cac4bec-f1f3-450e-8599-cc831bceb3aa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_cb773129-e416-4079-8367-74f0481af19a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_6cac4bec-f1f3-450e-8599-cc831bceb3aa" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_cb773129-e416-4079-8367-74f0481af19a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_16851c19-15a9-4f58-98c9-c094f8e9cc32" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_6cac4bec-f1f3-450e-8599-cc831bceb3aa" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_16851c19-15a9-4f58-98c9-c094f8e9cc32" 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-20221231.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_8b89bcba-a4ab-4624-8472-1ec802968bd8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_cb85edfb-a630-4f3d-8efc-1322d6d62ae9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_8b89bcba-a4ab-4624-8472-1ec802968bd8" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_cb85edfb-a630-4f3d-8efc-1322d6d62ae9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_48845216-5d84-4ab1-bc75-1d65cca853b0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_8b89bcba-a4ab-4624-8472-1ec802968bd8" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_48845216-5d84-4ab1-bc75-1d65cca853b0" 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-20221231.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_a0abd998-9a7d-41f8-b7c7-14de069625f1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_89ac0fc1-e4cc-4afe-8953-5201c8c6ac77" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_a0abd998-9a7d-41f8-b7c7-14de069625f1" xlink:to="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_89ac0fc1-e4cc-4afe-8953-5201c8c6ac77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_e328b02c-2633-4b77-a720-7cc71882a743" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_a0abd998-9a7d-41f8-b7c7-14de069625f1" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_e328b02c-2633-4b77-a720-7cc71882a743" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock_bbc0726b-a458-439c-9fb1-edc1e405d4b4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OffsettingAssetsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_a0abd998-9a7d-41f8-b7c7-14de069625f1" xlink:to="loc_us-gaap_OffsettingAssetsTableTextBlock_bbc0726b-a458-439c-9fb1-edc1e405d4b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_36187721-5a6e-47d8-9103-6eaea66b5dfb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_a0abd998-9a7d-41f8-b7c7-14de069625f1" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_36187721-5a6e-47d8-9103-6eaea66b5dfb" 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-20221231.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_49e431cc-a247-4907-ac32-47c24bef30c9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_f4d20b6b-3a04-4e83-90d1-ae4cd9307d78" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_49e431cc-a247-4907-ac32-47c24bef30c9" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_f4d20b6b-3a04-4e83-90d1-ae4cd9307d78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_6f5e6204-c32a-4900-8adf-03160777c1d3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_49e431cc-a247-4907-ac32-47c24bef30c9" xlink:to="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_6f5e6204-c32a-4900-8adf-03160777c1d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_c2118a8c-a426-422c-934b-6d24f0055cc1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_49e431cc-a247-4907-ac32-47c24bef30c9" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_c2118a8c-a426-422c-934b-6d24f0055cc1" 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-20221231.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_a5fe06d9-8e6e-4325-ada0-e59dd8bec8af" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_6fd43720-b059-42e6-8d6d-1f1c61310e31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a5fe06d9-8e6e-4325-ada0-e59dd8bec8af" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_6fd43720-b059-42e6-8d6d-1f1c61310e31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_9793d10d-6253-4159-8da9-af958149c964" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a5fe06d9-8e6e-4325-ada0-e59dd8bec8af" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_9793d10d-6253-4159-8da9-af958149c964" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_66fbd019-88b5-4a2d-920d-b8c8267513a1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a5fe06d9-8e6e-4325-ada0-e59dd8bec8af" xlink:to="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_66fbd019-88b5-4a2d-920d-b8c8267513a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_88533d4c-142a-48e1-af34-dc72e93bbcbc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a5fe06d9-8e6e-4325-ada0-e59dd8bec8af" xlink:to="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_88533d4c-142a-48e1-af34-dc72e93bbcbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_af02963a-80cf-45d4-8c92-f3dfb0a62afd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a5fe06d9-8e6e-4325-ada0-e59dd8bec8af" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_af02963a-80cf-45d4-8c92-f3dfb0a62afd" 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-20221231.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_b9a232f7-41a0-465c-bc4c-cefc9aedb4ec" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_6ceafd0c-d984-48e6-b65d-104573d3e52c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b9a232f7-41a0-465c-bc4c-cefc9aedb4ec" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_6ceafd0c-d984-48e6-b65d-104573d3e52c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_8ac4e8bf-d961-4344-a598-92c0e0301791" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b9a232f7-41a0-465c-bc4c-cefc9aedb4ec" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_8ac4e8bf-d961-4344-a598-92c0e0301791" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_847e4c08-5067-4b2b-b9a0-b934ca2f1414" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b9a232f7-41a0-465c-bc4c-cefc9aedb4ec" xlink:to="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_847e4c08-5067-4b2b-b9a0-b934ca2f1414" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_ee56e63f-5978-4ec9-9383-3b1dc32c5d77" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_b9a232f7-41a0-465c-bc4c-cefc9aedb4ec" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_ee56e63f-5978-4ec9-9383-3b1dc32c5d77" 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-20221231.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_bea10127-1ec9-4057-af2f-c03a2f59afba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_6c08531d-606f-48f3-9cd8-0978c0467005" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_bea10127-1ec9-4057-af2f-c03a2f59afba" xlink:to="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_6c08531d-606f-48f3-9cd8-0978c0467005" 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-20221231.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_758174ee-0080-4872-a6c5-eca6cd5249b1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_c5c6592c-ec6b-425a-9a91-b5df5926b640" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_758174ee-0080-4872-a6c5-eca6cd5249b1" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_c5c6592c-ec6b-425a-9a91-b5df5926b640" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesTables" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringChargesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ae9b1fd5-949e-4b69-97ca-e8dd0daf594c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_ee1ff512-7877-4060-b402-e63043a9a162" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ae9b1fd5-949e-4b69-97ca-e8dd0daf594c" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_ee1ff512-7877-4060-b402-e63043a9a162" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_63df280a-965c-4ef9-a0d4-0492625a5aa8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_ae9b1fd5-949e-4b69-97ca-e8dd0daf594c" xlink:to="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_63df280a-965c-4ef9-a0d4-0492625a5aa8" 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-20221231.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_7c606de3-7fd3-4651-ad32-9d47c0c3c023" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7c606de3-7fd3-4651-ad32-9d47c0c3c023" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_355688a9-6adc-4be8-80a0-e0345cc5b0ee" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_bde14f4d-d5e5-4cbe-9f97-a17707502b74" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_BuildingMember_bde14f4d-d5e5-4cbe-9f97-a17707502b74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_4383cc52-e482-4cf8-b7a6-f46b1f01b5ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_BuildingImprovementsMember_4383cc52-e482-4cf8-b7a6-f46b1f01b5ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_724b02c6-c4b6-4916-b891-03e87ede378a" xlink:href="cgnx-20221231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_724b02c6-c4b6-4916-b891-03e87ede378a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_617dda83-e791-4ff7-abac-9ae00ff141d0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_EquipmentMember_617dda83-e791-4ff7-abac-9ae00ff141d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_bbd81279-70e3-4f66-8418-2f689ef6eb8d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_2d75f7a9-c68b-4436-9720-ec0ca61a4f3a" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_bbd81279-70e3-4f66-8418-2f689ef6eb8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:to="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_af3f9c6a-2459-4ee5-9317-b06e3a62b1f3" xlink:to="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_bc3bba47-a8b3-4d47-9eef-33fa6eb1ee16" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:to="loc_srt_MinimumMember_bc3bba47-a8b3-4d47-9eef-33fa6eb1ee16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_c8cff76e-021d-4209-b85b-94558c5211be" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_28d932fd-963a-4e6c-80c3-3b3f055f9692" xlink:to="loc_srt_MaximumMember_c8cff76e-021d-4209-b85b-94558c5211be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_227bdcc0-85fb-4f8b-8406-f0b0f8dde6ed" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_3d41e057-5f25-4dfb-837e-170d69a70b08" xlink:href="cgnx-20221231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_3d41e057-5f25-4dfb-837e-170d69a70b08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_18abc29d-a74f-4199-951d-71adb64e0839" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_18abc29d-a74f-4199-951d-71adb64e0839" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_ebce096f-f056-45fa-bbdb-c9ebafc2bb6a" xlink:href="cgnx-20221231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_a51efe44-9720-4b51-be18-3a178d43c940" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_ebce096f-f056-45fa-bbdb-c9ebafc2bb6a" 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-20221231.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_e5e6a2bd-60d0-4701-92be-3bfdd75afe22" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e5e6a2bd-60d0-4701-92be-3bfdd75afe22" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d43909de-a5a3-4335-8e1f-1a3eaee24a2f" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_04570795-d83f-489a-8a0e-cf80f37dec4b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_us-gaap_DistributionRightsMember_04570795-d83f-489a-8a0e-cf80f37dec4b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_0de5cadd-cb47-4fa1-a2fb-8a6fe77fe2b2" xlink:href="cgnx-20221231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_0de5cadd-cb47-4fa1-a2fb-8a6fe77fe2b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_d96e678f-9333-4087-9bf5-c3c4fe0fcc6a" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_d96e678f-9333-4087-9bf5-c3c4fe0fcc6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_f0bb4525-8c3b-4609-887e-c23c0e6c849d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_f0bb4525-8c3b-4609-887e-c23c0e6c849d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_651152c4-64b9-4fc9-a466-1bab701e84c8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_cf1ff285-e515-4188-a5d4-9ea1f2b38875" xlink:to="loc_us-gaap_TrademarksMember_651152c4-64b9-4fc9-a466-1bab701e84c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:to="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_e6c14424-6e7c-4686-a5da-322e8c5db33f" xlink:to="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_1b14301e-c566-4bf2-aeeb-440e11520bb3" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:to="loc_srt_MinimumMember_1b14301e-c566-4bf2-aeeb-440e11520bb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_ef1f2a62-3e7d-4970-91a6-72594d096821" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_16a75853-965f-4b8b-9c44-5f5cac26bb7e" xlink:to="loc_srt_MaximumMember_ef1f2a62-3e7d-4970-91a6-72594d096821" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6a0ca7c-95d2-4794-bf37-4fa28b47ff63" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_498a56cb-2f86-4ec7-9455-150f750aee93" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6a0ca7c-95d2-4794-bf37-4fa28b47ff63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_c94a8caf-bd60-4760-ba41-fd523ba26852" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6a0ca7c-95d2-4794-bf37-4fa28b47ff63" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_c94a8caf-bd60-4760-ba41-fd523ba26852" 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-20221231.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_6f87ddbf-5a94-43c0-bca0-d263dcbffab4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_6f87ddbf-5a94-43c0-bca0-d263dcbffab4" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:to="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_f880f8dd-2ac6-4c7c-b6a8-459d1d5f6b9b" xlink:to="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_b1802d51-1007-45af-947d-eca11cf94ffe" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:to="loc_srt_MinimumMember_b1802d51-1007-45af-947d-eca11cf94ffe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_a796618e-b0a6-4e2c-a81e-0d7abeb91631" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_26544775-3e99-474c-996c-715ac7873ba0" xlink:to="loc_srt_MaximumMember_a796618e-b0a6-4e2c-a81e-0d7abeb91631" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_e03cbf94-e6ef-4647-ad3f-4136b49aadb2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_146a9428-8884-4650-a1e4-ce29a7784b8e" xlink:to="loc_us-gaap_ProductLiabilityContingencyLineItems_e03cbf94-e6ef-4647-ad3f-4136b49aadb2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod_fc566679-ade5-4508-9a23-5a717af04e93" xlink:href="cgnx-20221231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_e03cbf94-e6ef-4647-ad3f-4136b49aadb2" xlink:to="loc_cgnx_ProductWarrantyPeriod_fc566679-ade5-4508-9a23-5a717af04e93" 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-20221231.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_e4a091d4-bef0-4ac7-81e3-574133b7fc34" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_e4a091d4-bef0-4ac7-81e3-574133b7fc34" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:to="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_cdcf515c-2000-416b-a28e-b0a908f28af7" xlink:to="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_7eea2908-79a5-4651-8efb-c4a3635e9147" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:to="loc_srt_MinimumMember_7eea2908-79a5-4651-8efb-c4a3635e9147" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_c709a4d2-febf-4f57-9754-f717baade346" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_f47c3c16-6d90-4f90-8f75-d68564833943" xlink:to="loc_srt_MaximumMember_c709a4d2-febf-4f57-9754-f717baade346" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_2cd72887-df8a-4b0c-8677-043cb9a8fa28" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_0fca4d55-4584-42eb-a5f2-2ff58317fcba" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_2cd72887-df8a-4b0c-8677-043cb9a8fa28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms_f72bdb8a-4238-467f-ac6e-8b4e4a463217" xlink:href="cgnx-20221231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_2cd72887-df8a-4b0c-8677-043cb9a8fa28" xlink:to="loc_cgnx_RevenuePaymentTerms_f72bdb8a-4238-467f-ac6e-8b4e4a463217" 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-20221231.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_a6a02255-ce28-4e68-bd3d-a1a94b1a6307" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_c51322cd-10a4-4976-a67f-170f72770b9f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_a6a02255-ce28-4e68-bd3d-a1a94b1a6307" xlink:to="loc_us-gaap_AdvertisingExpense_c51322cd-10a4-4976-a67f-170f72770b9f" 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-20221231.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_1ff59138-20f5-4661-9ada-4be968d9f1f7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_1ff59138-20f5-4661-9ada-4be968d9f1f7" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_b06bab96-4e65-4ef8-b71c-8a194d15405b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_a9312b69-cb7a-409d-9dd9-62490e874a6f" xlink:to="loc_us-gaap_EquityComponentDomain_b06bab96-4e65-4ef8-b71c-8a194d15405b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_937b96b4-3bcc-4722-ab1f-c8aa9d7b9e61" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_b06bab96-4e65-4ef8-b71c-8a194d15405b" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_937b96b4-3bcc-4722-ab1f-c8aa9d7b9e61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_9a551853-99aa-48ee-a12f-032be79e3665" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_d89cb42e-6d3e-4cf0-bdc0-13995ef3ef56" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_d89cb42e-6d3e-4cf0-bdc0-13995ef3ef56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_9995a827-79d3-460a-a52c-9983543943cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_9995a827-79d3-460a-a52c-9983543943cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_279781dd-6e85-4840-902b-ec47c4741517" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_279781dd-6e85-4840-902b-ec47c4741517" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_0a6372e8-0ce2-47b0-92ac-e76d45c34052" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_5d9e5e43-25a7-4799-8be1-93b020b536d1" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_0a6372e8-0ce2-47b0-92ac-e76d45c34052" 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-20221231.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_43de839f-d20f-41b1-a9fa-9afd61420911" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_43de839f-d20f-41b1-a9fa-9afd61420911" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_66c91a78-1e48-4b89-b70d-bcff17f5cfbe" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_3bdebfbe-3caa-4c79-bca3-a222fa500ba1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_3bdebfbe-3caa-4c79-bca3-a222fa500ba1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_f758c1e2-de59-4d57-945a-96f674e5bd26" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_f758c1e2-de59-4d57-945a-96f674e5bd26" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_959a2813-ceb0-4063-b77b-f4bf6f52a582" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f6cf2fb4-298b-4594-83b3-7f0be4b10e92" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_959a2813-ceb0-4063-b77b-f4bf6f52a582" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_a8623725-ec25-483a-afef-6f22d26f45ce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_05fde6fe-84c1-418b-9da4-84c149f8af5b" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_a8623725-ec25-483a-afef-6f22d26f45ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_92cfbf9d-e955-4282-8d5e-d4033b48dd9f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_a8623725-ec25-483a-afef-6f22d26f45ce" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_92cfbf9d-e955-4282-8d5e-d4033b48dd9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_238d2c16-2fab-4798-838d-188bd577bf87" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_1d4e2db7-f267-4a2f-a14a-aa711206addc" xlink:href="cgnx-20221231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_1d4e2db7-f267-4a2f-a14a-aa711206addc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_f4d3b1ce-0a81-4918-809f-0a21d860491d" xlink:href="cgnx-20221231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_f4d3b1ce-0a81-4918-809f-0a21d860491d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_b8e149df-381f-4570-ba93-df18a5a99afb" xlink:href="cgnx-20221231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_b8e149df-381f-4570-ba93-df18a5a99afb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_0825d667-0c53-47dc-bf08-f586c5ccd609" xlink:href="cgnx-20221231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_0825d667-0c53-47dc-bf08-f586c5ccd609" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsFairValueDisclosure_4bc7c2ef-b643-4add-a779-ce3ec9223eb1" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsFairValueDisclosure"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_AgencyBondsFairValueDisclosure_4bc7c2ef-b643-4add-a779-ce3ec9223eb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_424bd167-cb69-46b3-bd32-20c6fcce18d0" xlink:href="cgnx-20221231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_424bd167-cb69-46b3-bd32-20c6fcce18d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MunicipalBondsFairValueDisclosure_ad4a8716-f5e5-486d-97c7-0ea972397d61" xlink:href="cgnx-20221231.xsd#cgnx_MunicipalBondsFairValueDisclosure"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_cgnx_MunicipalBondsFairValueDisclosure_ad4a8716-f5e5-486d-97c7-0ea972397d61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_a6b7d77f-41d0-4750-b48a-7c4bada24488" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_2ed9918d-1af8-4c5d-a529-c97c39de4350" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_a6b7d77f-41d0-4750-b48a-7c4bada24488" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_f3c40f8b-2ea6-4963-9ab4-f0af2c2b5bc4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_46df8bfc-3002-480f-921e-0439718bcacc" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_f3c40f8b-2ea6-4963-9ab4-f0af2c2b5bc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_3124654c-e42a-4e95-8bfd-a65ce560728b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_f3c40f8b-2ea6-4963-9ab4-f0af2c2b5bc4" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_3124654c-e42a-4e95-8bfd-a65ce560728b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#FairValueMeasurementsAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_14722cb8-ccd6-4c12-b01b-a49f2793010b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_14722cb8-ccd6-4c12-b01b-a49f2793010b" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cc13320b-92c4-48a6-ae27-015a7df8cac9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_a52cd9a7-58f8-4961-97b9-e4efc424ac30" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cc13320b-92c4-48a6-ae27-015a7df8cac9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GViVenturesInc.Member_d175f932-6638-4a02-8702-4df00a6991ab" xlink:href="cgnx-20221231.xsd#cgnx_GViVenturesInc.Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cc13320b-92c4-48a6-ae27-015a7df8cac9" xlink:to="loc_cgnx_GViVenturesInc.Member_d175f932-6638-4a02-8702-4df00a6991ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_706d4dfc-29c2-4abd-8cda-eaf69fa17358" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_ec551eed-a048-4c83-b763-ec72a7b6e4a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_ec551eed-a048-4c83-b763-ec72a7b6e4a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseImpairmentLoss_a5d43328-1ab1-4ebc-b8fe-30d10607e215" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseImpairmentLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_OperatingLeaseImpairmentLoss_a5d43328-1ab1-4ebc-b8fe-30d10607e215" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8f4323c7-7ce4-4046-837d-8bbca878b903" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_bd815025-6660-4796-8072-6d12cb0a4504" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_8f4323c7-7ce4-4046-837d-8bbca878b903" 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-20221231.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_c390edce-8c08-49c4-9ecd-e020af9d8fa4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_c390edce-8c08-49c4-9ecd-e020af9d8fa4" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:to="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_0c4fd245-ac60-479e-a44a-0519c79947b8" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_ebcc13cf-4dfe-4edb-9741-13916273ff55" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_ebcc13cf-4dfe-4edb-9741-13916273ff55" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_a90ab083-842d-4714-911b-468d3aee1e31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_a90ab083-842d-4714-911b-468d3aee1e31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_4c13f5a8-14f7-4e0a-94c0-b8510215dc5d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_4c13f5a8-14f7-4e0a-94c0-b8510215dc5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_dfe865f5-f5e8-45c5-9581-049050269d72" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_dfe865f5-f5e8-45c5-9581-049050269d72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_10a82177-2d2b-4c44-b547-70d3b0ab6c5b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_us-gaap_MunicipalBondsMember_10a82177-2d2b-4c44-b547-70d3b0ab6c5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_e917f2b8-7ee4-4449-b54e-c4a2420bd7b7" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_6d034a21-59a1-4a9f-8e56-7e25954c8779" xlink:to="loc_cgnx_AgencyBondsMember_e917f2b8-7ee4-4449-b54e-c4a2420bd7b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_78052639-880c-4f26-a883-bd24ffa26301" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_42f0abf5-4e1e-4c1d-b0e7-4675f92307f0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Cash"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_Cash_42f0abf5-4e1e-4c1d-b0e7-4675f92307f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06e15165-0cb2-4cdf-82fd-fc1c4d6d39d9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06e15165-0cb2-4cdf-82fd-fc1c4d6d39d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_820c432c-c95b-48c8-89a4-73db54036538" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_820c432c-c95b-48c8-89a4-73db54036538" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_882259cb-53f1-4ff9-b9d2-25ebc37209f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_882259cb-53f1-4ff9-b9d2-25ebc37209f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_45cfb7c7-49c5-4aaa-ac25-8d92f2a19560" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_45cfb7c7-49c5-4aaa-ac25-8d92f2a19560" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_b887b650-64ca-48d5-b2e4-72249a1ac318" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_us-gaap_LongTermInvestments_b887b650-64ca-48d5-b2e4-72249a1ac318" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_e2fbc5e5-1a4a-4724-9be5-3655687d314c" xlink:href="cgnx-20221231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_c6b3145a-0342-4abb-9044-a4efae177f7f" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_e2fbc5e5-1a4a-4724-9be5-3655687d314c" 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-20221231.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_5b02bfbf-21e6-4d91-be0c-b31bd06f6eb6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DueFromForeignBanks_bd2ce0bf-14a3-4f16-817e-d1dc0b4035eb" xlink:href="cgnx-20221231.xsd#cgnx_DueFromForeignBanks"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_5b02bfbf-21e6-4d91-be0c-b31bd06f6eb6" xlink:to="loc_cgnx_DueFromForeignBanks_bd2ce0bf-14a3-4f16-817e-d1dc0b4035eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable_1839ae02-a0d8-457d-92bb-0eaf8a259313" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_5b02bfbf-21e6-4d91-be0c-b31bd06f6eb6" xlink:to="loc_us-gaap_InterestReceivable_1839ae02-a0d8-457d-92bb-0eaf8a259313" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_3d1f6dbf-0241-403b-9081-9c9c42e7ae97" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_5b02bfbf-21e6-4d91-be0c-b31bd06f6eb6" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_3d1f6dbf-0241-403b-9081-9c9c42e7ae97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_8b8efeb1-52a1-4325-af2e-619987ead122" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_5b02bfbf-21e6-4d91-be0c-b31bd06f6eb6" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_8b8efeb1-52a1-4325-af2e-619987ead122" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_1fca0905-dc83-4af3-9143-705bf64ca63b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_5b02bfbf-21e6-4d91-be0c-b31bd06f6eb6" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_1fca0905-dc83-4af3-9143-705bf64ca63b" 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-20221231.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_85800998-29e5-4c1f-bc92-cb5375542201" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_85800998-29e5-4c1f-bc92-cb5375542201" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:to="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_88736c9f-e836-4fe5-9801-a9293b1bdf76" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_fd02859f-d03b-4f5a-a6b4-631f64dadd16" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_fd02859f-d03b-4f5a-a6b4-631f64dadd16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_2a0c647b-78b7-497e-81ed-0c2d7e3602e6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_2a0c647b-78b7-497e-81ed-0c2d7e3602e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_a743b409-ed1a-4f5d-9c55-c2944534cde3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_a743b409-ed1a-4f5d-9c55-c2944534cde3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_ac94bebe-3aa2-4c35-9826-2fa44c727ada" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_ac94bebe-3aa2-4c35-9826-2fa44c727ada" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_1afb6907-1e33-4e41-b90b-878b9c733d9b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_us-gaap_MunicipalBondsMember_1afb6907-1e33-4e41-b90b-878b9c733d9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_c76765d2-f729-4090-8438-44384a0fcd22" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_afb82ab7-83ea-4f03-b7f0-fceeb3fa4102" xlink:to="loc_cgnx_AgencyBondsMember_c76765d2-f729-4090-8438-44384a0fcd22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:href="cgnx-20221231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:to="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:href="cgnx-20221231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationAxis_58eb6fd0-061b-4e3d-94ce-02f8e4f14918" xlink:to="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_3c82b256-32d9-49bd-93d2-60d67fda75a2" xlink:href="cgnx-20221231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:to="loc_cgnx_LongTermInvestmentsMember_3c82b256-32d9-49bd-93d2-60d67fda75a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_c2d7b2e5-d310-4a8e-a3dd-e570e6320cc5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationDomain_305befe1-e98f-4704-97ba-5e16d9b72dca" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_c2d7b2e5-d310-4a8e-a3dd-e570e6320cc5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_9bd94129-374a-42bf-9258-af5868f44e2c" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_72703280-9a5b-4db2-99d5-4d231638941c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_72703280-9a5b-4db2-99d5-4d231638941c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ce9b473a-e628-4297-8d9b-6e1b14a2444c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ce9b473a-e628-4297-8d9b-6e1b14a2444c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_fdf0a0f4-0beb-4292-a0f4-eefe99566129" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_fdf0a0f4-0beb-4292-a0f4-eefe99566129" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c66c3364-6d1e-4647-bb8f-779b6ecf5b9e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9ec2db5f-e51c-4b94-b880-58cba66ee40a" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_c66c3364-6d1e-4647-bb8f-779b6ecf5b9e" 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-20221231.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_dd7bf935-8866-4250-8892-55fc76177818" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_dd7bf935-8866-4250-8892-55fc76177818" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:to="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_b7f337de-1d14-4c53-8336-b3b22a70abf3" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_9deb4847-75e8-4aca-9a9a-5eb4171fcd0f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_9deb4847-75e8-4aca-9a9a-5eb4171fcd0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_af33a692-a224-40ba-bb34-d92baa382ad3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_af33a692-a224-40ba-bb34-d92baa382ad3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_14a5a65f-e282-496a-b994-306320cfb526" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_14a5a65f-e282-496a-b994-306320cfb526" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_49e1f7a3-6d21-4579-832c-79411002764e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_49e1f7a3-6d21-4579-832c-79411002764e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_c943036a-b424-4dd7-ac79-9fc1585d571a" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_cgnx_AgencyBondsMember_c943036a-b424-4dd7-ac79-9fc1585d571a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_bea217aa-3374-4d8b-ab40-0097ff1ddf10" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_90e61544-5849-4b89-b9d5-4551c9f40a15" xlink:to="loc_us-gaap_MunicipalBondsMember_bea217aa-3374-4d8b-ab40-0097ff1ddf10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_b1d45c33-179c-4795-bcd8-79f47ec3602d" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_af4ee6a3-9383-4681-b356-624a5705f8cd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_af4ee6a3-9383-4681-b356-624a5705f8cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_204f9cca-90c3-42c7-955e-ec3c9d14ec45" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_204f9cca-90c3-42c7-955e-ec3c9d14ec45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_e18ed1cb-f8df-401b-aa15-35c11bf9aae4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_e18ed1cb-f8df-401b-aa15-35c11bf9aae4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_f320a7e4-802d-4a78-a3a5-8f2f4cd6bc21" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_f320a7e4-802d-4a78-a3a5-8f2f4cd6bc21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_5643e724-2280-4afd-a8be-3abb5c1e39c2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_5643e724-2280-4afd-a8be-3abb5c1e39c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_ed7066eb-e506-4d6d-806b-8408a4237219" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_791e8145-65ae-4e05-aa34-f7a687bdc695" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_ed7066eb-e506-4d6d-806b-8408a4237219" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_0f76977b-4e15-4293-9d46-4fab8f5ce18e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_0f76977b-4e15-4293-9d46-4fab8f5ce18e" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:to="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_74baa3fa-c489-4f32-a678-852690b3c208" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_fa4da418-53de-4ad3-af8c-18e09a60d856" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_fa4da418-53de-4ad3-af8c-18e09a60d856" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_48200438-359e-4af5-b712-78edd2cf5d86" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_48200438-359e-4af5-b712-78edd2cf5d86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_48bcec3f-4dcc-4036-a46b-6f85792c426a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_48bcec3f-4dcc-4036-a46b-6f85792c426a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_e78ebc28-43c7-4d53-80e0-9f299f086cc1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_e78ebc28-43c7-4d53-80e0-9f299f086cc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_4d4b199c-c391-4be5-bf78-72aceda7f304" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_us-gaap_MunicipalBondsMember_4d4b199c-c391-4be5-bf78-72aceda7f304" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_9c3a32ef-6ce0-4dd0-b6b4-826eefbe9a94" xlink:href="cgnx-20221231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_82680105-5efa-40f3-8498-997aaacce5f4" xlink:to="loc_cgnx_AgencyBondsMember_9c3a32ef-6ce0-4dd0-b6b4-826eefbe9a94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesTable_cdfd3695-3516-4a73-9a28-cb36a1c4a92e" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_415ce7d4-746c-496f-b136-6f1f09550b0c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_415ce7d4-746c-496f-b136-6f1f09550b0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_2724130e-d182-4ea2-abdf-8c87f2869280" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_2724130e-d182-4ea2-abdf-8c87f2869280" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_01ce50f6-d419-47bf-ba82-cc7c5b3d7b19" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_01ce50f6-d419-47bf-ba82-cc7c5b3d7b19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_1ff6bc11-f2c8-42e0-aa2d-98b2d65a438f" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_1ff6bc11-f2c8-42e0-aa2d-98b2d65a438f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_49431a01-8370-418f-9e3b-ae830a0a539d" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_49431a01-8370-418f-9e3b-ae830a0a539d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d661642b-86b8-4cba-aa22-9a1d73df63f9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_d661642b-86b8-4cba-aa22-9a1d73df63f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_2e746c8e-efe9-4b0a-8922-bd352a51c47a" xlink:href="cgnx-20221231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_231048b5-7476-4ec9-bf43-aba85874affb" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_2e746c8e-efe9-4b0a-8922-bd352a51c47a" 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-20221231.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_a6e4bc69-f523-44e2-aff0-7cb26a18d337" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_6d68e398-ecfd-4911-819e-e40c3f767b92" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_a6e4bc69-f523-44e2-aff0-7cb26a18d337" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_6d68e398-ecfd-4911-819e-e40c3f767b92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_a17e0359-ec74-443a-87ce-8c7197625984" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_a6e4bc69-f523-44e2-aff0-7cb26a18d337" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_a17e0359-ec74-443a-87ce-8c7197625984" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_2b78f434-82e9-4576-91cd-cc723a2c512e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_a6e4bc69-f523-44e2-aff0-7cb26a18d337" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_2b78f434-82e9-4576-91cd-cc723a2c512e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_e2b18401-6c97-4b58-be08-a592c43f0de0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_a6e4bc69-f523-44e2-aff0-7cb26a18d337" xlink:to="loc_us-gaap_InventoryNet_e2b18401-6c97-4b58-be08-a592c43f0de0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_61059560-58d4-4a67-9483-24ee7f97d9cd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_61059560-58d4-4a67-9483-24ee7f97d9cd" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4626984-a82a-49c3-88f1-52e0884d05bf" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_5f7bdef7-3f96-4177-bb6d-2db2d5adcb41" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_LandMember_5f7bdef7-3f96-4177-bb6d-2db2d5adcb41" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_9e999afd-5950-4895-ba54-bed17bc05a94" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_BuildingMember_9e999afd-5950-4895-ba54-bed17bc05a94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_d28a55ac-7767-479c-9aff-a0d4c74bdb21" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_BuildingImprovementsMember_d28a55ac-7767-479c-9aff-a0d4c74bdb21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_6274ff67-fb97-4501-aa3a-6f3e105a637f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_6274ff67-fb97-4501-aa3a-6f3e105a637f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember_2d4332d4-7316-479b-8d99-27e188e85594" xlink:href="cgnx-20221231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_cgnx_HardwareAndSoftwareMember_2d4332d4-7316-479b-8d99-27e188e85594" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_97c47f19-ae0f-4ec9-82b1-c4f121e2e1cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_EquipmentMember_97c47f19-ae0f-4ec9-82b1-c4f121e2e1cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_cb8ba003-945c-452b-9439-0fad7f44f7ae" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_f0250b18-30d9-4401-b5cc-e3815069b5bd" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_cb8ba003-945c-452b-9439-0fad7f44f7ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_8ef912c3-3f60-4a24-b081-cec3121e8ffe" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_87ea8e44-831c-4607-9139-b0d65f3c63e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_87ea8e44-831c-4607-9139-b0d65f3c63e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_afd12de8-2bbf-4054-9fad-14e99dbf3340" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_afd12de8-2bbf-4054-9fad-14e99dbf3340" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_c6ac5d7c-713c-4b43-a15c-b576c6344784" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_e3c1da10-25fd-4674-8d57-871411b90f9a" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_c6ac5d7c-713c-4b43-a15c-b576c6344784" 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-20221231.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_edfe8bee-c05e-4cd3-9b1f-8613bba83a02" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_1d85a903-ef20-4947-805e-0ddf784cc1b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_edfe8bee-c05e-4cd3-9b1f-8613bba83a02" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_1d85a903-ef20-4947-805e-0ddf784cc1b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_63e9bfa2-30e7-4222-bd30-c09c45618d3b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_edfe8bee-c05e-4cd3-9b1f-8613bba83a02" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_63e9bfa2-30e7-4222-bd30-c09c45618d3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_6b55559d-980d-4412-8783-08005f1d485e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_edfe8bee-c05e-4cd3-9b1f-8613bba83a02" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_6b55559d-980d-4412-8783-08005f1d485e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_edfe8bee-c05e-4cd3-9b1f-8613bba83a02" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:to="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain_14de9301-252a-4e58-a0d3-2758dc0c8a67" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_4a90ba23-f91b-4b76-9d8d-3570f6078046" xlink:to="loc_us-gaap_CatastrophicEventDomain_14de9301-252a-4e58-a0d3-2758dc0c8a67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_61afd363-2616-43eb-93d0-0719f615aebe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DamageFromFireExplosionOrOtherHazardMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CatastrophicEventDomain_14de9301-252a-4e58-a0d3-2758dc0c8a67" xlink:to="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_61afd363-2616-43eb-93d0-0719f615aebe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_fc1ac292-3435-4e5d-92ca-8b614533e308" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8fb1bfb1-8bb2-4593-953c-fe6c92a367e2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_8fb1bfb1-8bb2-4593-953c-fe6c92a367e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_e33e6bc0-c7f6-443a-a328-3f918a83fa45" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_e33e6bc0-c7f6-443a-a328-3f918a83fa45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_fccac1be-8e7b-43a6-824e-b863ee1cef94" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_47617a77-3eeb-4f8c-be62-fe9f9dd6a638" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_fccac1be-8e7b-43a6-824e-b863ee1cef94" 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-20221231.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_fea9b50f-5496-45f6-b51e-2b35d5446147" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_fea9b50f-5496-45f6-b51e-2b35d5446147" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:to="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_9e563a09-7817-4ac2-a312-4e9eefca0c6d" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_aa795916-04c3-4c62-a837-d92f1b719b95" xlink:to="loc_srt_SegmentGeographicalDomain_9e563a09-7817-4ac2-a312-4e9eefca0c6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SouthboroughMassachusettsMember_b0f9bbd4-41dc-47bb-af24-711a278c92a2" xlink:href="cgnx-20221231.xsd#cgnx_SouthboroughMassachusettsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_9e563a09-7817-4ac2-a312-4e9eefca0c6d" xlink:to="loc_cgnx_SouthboroughMassachusettsMember_b0f9bbd4-41dc-47bb-af24-711a278c92a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_ebee4583-9870-4c56-a084-c685b442a729" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_43b4a473-8478-4184-b12d-a732008fb3e4" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_ebee4583-9870-4c56-a084-c685b442a729" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_18768341-b97f-4b4e-b7c4-eb635ac66b99" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_ebee4583-9870-4c56-a084-c685b442a729" xlink:to="loc_us-gaap_ContractTerminationMember_18768341-b97f-4b4e-b7c4-eb635ac66b99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_9db33699-d473-48fc-8b86-476d2c0df656" xlink:to="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_84f0cf2d-f65b-40e8-8dd7-22775a3f7f11" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseExpense_84f0cf2d-f65b-40e8-8dd7-22775a3f7f11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_ca4a2087-9627-4762-9d3d-b7f4080a3770" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeasePayments_ca4a2087-9627-4762-9d3d-b7f4080a3770" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_118a5581-39df-4d28-ae67-875c4e29c791" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_118a5581-39df-4d28-ae67-875c4e29c791" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_c6b5b196-f32b-4c3f-81fa-b62943ae5387" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_c6b5b196-f32b-4c3f-81fa-b62943ae5387" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_9426874a-e87a-4a94-8eb9-7c1a25dc16fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseLiability_9426874a-e87a-4a94-8eb9-7c1a25dc16fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea_747b0dee-d4a3-4ddc-94de-c74e65162195" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetRentableArea"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_NetRentableArea_747b0dee-d4a3-4ddc-94de-c74e65162195" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3b778856-0167-4232-8882-a839c69d0cc0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3b778856-0167-4232-8882-a839c69d0cc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_a0446d56-56d2-47cb-8769-cead43862c03" xlink:href="cgnx-20221231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_a0446d56-56d2-47cb-8769-cead43862c03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_17af9e2d-547e-4fae-80c9-57ed598dd0e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_17af9e2d-547e-4fae-80c9-57ed598dd0e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_ef901d17-7cee-4656-8afa-cd2a10cd4a38" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_ef901d17-7cee-4656-8afa-cd2a10cd4a38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_fea0d3b6-ee0f-4dcc-a227-cc5823d572d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_fea0d3b6-ee0f-4dcc-a227-cc5823d572d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_fdf17763-fa49-44b5-b512-7b232c6ceab7" xlink:href="cgnx-20221231.xsd#cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset_fdf17763-fa49-44b5-b512-7b232c6ceab7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_d453d6e6-e028-4979-9cf2-8e37a485bc07" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_AssetImpairmentCharges_d453d6e6-e028-4979-9cf2-8e37a485bc07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLeaseIncome_50ed203e-37b7-45eb-8b1b-ce7f10939b8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLeaseIncome"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseLeaseIncome_50ed203e-37b7-45eb-8b1b-ce7f10939b8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList_12487160-9fb5-4f11-be6e-48d41404e7bc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_20bf7905-eaeb-4b70-bdc9-88db97fd63d5" xlink:to="loc_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList_12487160-9fb5-4f11-be6e-48d41404e7bc" 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-20221231.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_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_312d6be2-1b5c-4171-a881-4111860d9587" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_312d6be2-1b5c-4171-a881-4111860d9587" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_fb6cb14c-8af0-4073-9cb5-5a6259f4251c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_fb6cb14c-8af0-4073-9cb5-5a6259f4251c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_87a0b61e-5fe2-43cd-a28d-48f1c4ca543f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_87a0b61e-5fe2-43cd-a28d-48f1c4ca543f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_34e3c57a-898c-4e84-af08-f02dda664dc0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_34e3c57a-898c-4e84-af08-f02dda664dc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_1d525698-847e-44e0-8181-8e12c20d1bf5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_1d525698-847e-44e0-8181-8e12c20d1bf5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_f2ed18f9-ca23-4eb8-b594-403a34a8a98c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_f2ed18f9-ca23-4eb8-b594-403a34a8a98c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_eeedf13b-b60a-4f10-a371-46239aad6af6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_a2c6f1a7-ae3c-4533-9fd3-d40f6bad9b21" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_eeedf13b-b60a-4f10-a371-46239aad6af6" 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-20221231.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_5fe3b59d-ac80-4221-8f7b-a25bbcf17805" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_5fe3b59d-ac80-4221-8f7b-a25bbcf17805" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4a102ef7-9bbc-468d-8e7b-953aa5582520" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_6772ae92-b33c-4c63-aa09-6e5098566d5a" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4a102ef7-9bbc-468d-8e7b-953aa5582520" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_b110cf93-561e-4bd0-8fbe-d3d1eb05e0ee" xlink:href="cgnx-20221231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4a102ef7-9bbc-468d-8e7b-953aa5582520" xlink:to="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_b110cf93-561e-4bd0-8fbe-d3d1eb05e0ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_56294fa9-df60-42dd-a583-59ccb8042d0b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_d55182d3-f5e4-4d1a-b81c-c5483cc64ed3" xlink:to="loc_us-gaap_GoodwillLineItems_56294fa9-df60-42dd-a583-59ccb8042d0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillLineItems_56294fa9-df60-42dd-a583-59ccb8042d0b" xlink:to="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_8759962e-4505-4d52-8b9f-6f333da4befd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_Goodwill_8759962e-4505-4d52-8b9f-6f333da4befd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease_3d9d2e7a-01a2-49aa-8b17-c9c3cbd491f0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_GoodwillOtherIncreaseDecrease_3d9d2e7a-01a2-49aa-8b17-c9c3cbd491f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_d1744696-1fa4-40df-a300-6e4145d4e72f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_d1744696-1fa4-40df-a300-6e4145d4e72f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_3cf5e06c-d5fe-4197-ba26-75e9859e3936" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_b239ebd0-3f82-4984-8e77-3e39881fa692" xlink:to="loc_us-gaap_Goodwill_3cf5e06c-d5fe-4197-ba26-75e9859e3936" 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-20221231.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_40a82e30-7805-4e12-8a96-3d962e00867d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_40a82e30-7805-4e12-8a96-3d962e00867d" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3f5f36ce-c081-497f-8cd6-1c709e92480e" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_43ca2f11-14f6-4d19-87ff-85329f9f086a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_DistributionRightsMember_43ca2f11-14f6-4d19-87ff-85329f9f086a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_fb549fb3-e58f-46f4-bb3c-12c6b41669d3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_fb549fb3-e58f-46f4-bb3c-12c6b41669d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_e594a19a-d94f-4850-be8e-9e8057779d77" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_e594a19a-d94f-4850-be8e-9e8057779d77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_001be64e-85ff-4ae5-9b6f-1abb7ba06d31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_001be64e-85ff-4ae5-9b6f-1abb7ba06d31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_0a1615eb-4b45-4187-8e3b-86a55bbfec33" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_TrademarksMember_0a1615eb-4b45-4187-8e3b-86a55bbfec33" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_798bf172-2012-4b1b-8424-61dfc3f777f3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_36affbaa-7ed6-40aa-9b9d-98f58c102770" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_798bf172-2012-4b1b-8424-61dfc3f777f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_98cb2a1e-fe08-4188-9c45-218d8c70675f" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_c8ea5bbc-0c67-4388-be3b-756794c79b50" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_c8ea5bbc-0c67-4388-be3b-756794c79b50" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_9acee88a-5300-469b-bbd9-b269797e421a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_9acee88a-5300-469b-bbd9-b269797e421a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_18311835-05ce-4681-9154-6dd4c9000ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_245e41ff-9b55-40db-a7b6-0481bd145274" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_18311835-05ce-4681-9154-6dd4c9000ecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_c9628022-4dc0-4516-a598-e54fe03074f0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_c9628022-4dc0-4516-a598-e54fe03074f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_9d279b00-78ce-4985-84bc-b7e3679fea70" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_9d279b00-78ce-4985-84bc-b7e3679fea70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_649ea41d-e451-41c8-8c0a-fa0cda892cff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_649ea41d-e451-41c8-8c0a-fa0cda892cff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_a12de92d-04ab-4512-85b6-37723741941f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_a12de92d-04ab-4512-85b6-37723741941f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_20c5576b-9d46-4ef7-9fb3-3feeb3b7f1b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_20c5576b-9d46-4ef7-9fb3-3feeb3b7f1b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_83a61469-935a-4b73-b6da-f83422cde53c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_83a61469-935a-4b73-b6da-f83422cde53c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3d278ed-50cc-4c80-9fec-3cde00301a69" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_11780ef7-19da-4aa2-9d04-39fb7bde5c39" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_d3d278ed-50cc-4c80-9fec-3cde00301a69" 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-20221231.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_9aa9d2f7-0bee-4e3f-8606-e473a2721fbd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_9aa9d2f7-0bee-4e3f-8606-e473a2721fbd" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7583e395-ffce-4897-94f8-dfdbef3bde3f" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabCo.Ltd.Member_d713a525-ce14-4f50-bfa8-6b562d5d1720" xlink:href="cgnx-20221231.xsd#cgnx_SualabCo.Ltd.Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:to="loc_cgnx_SualabCo.Ltd.Member_d713a525-ce14-4f50-bfa8-6b562d5d1720" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EnShapeGmbHMember_61be58a0-e1e7-46be-8890-6ca1b0220c73" xlink:href="cgnx-20221231.xsd#cgnx_EnShapeGmbHMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8da78f26-2abd-4305-aca1-963109accddb" xlink:to="loc_cgnx_EnShapeGmbHMember_61be58a0-e1e7-46be-8890-6ca1b0220c73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_59a226c2-7393-45a7-b255-d8e316a16166" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_b56ecd15-75cd-41b0-93c8-f1d88c2369c3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_b56ecd15-75cd-41b0-93c8-f1d88c2369c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_ec6427f2-4478-49a0-bd32-5bc4dbc1dc46" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_ec6427f2-4478-49a0-bd32-5bc4dbc1dc46" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_b3cb2919-418a-4cf2-829e-c0f3457c2f14" xlink:href="cgnx-20221231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d5714fe4-3932-420d-8c59-4c3c044d2f1d" xlink:to="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_b3cb2919-418a-4cf2-829e-c0f3457c2f14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_61b85442-fa7a-483c-9b6b-14940771d1a5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_273194ce-a9e1-4daa-a81c-02a010f8d581" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_61b85442-fa7a-483c-9b6b-14940771d1a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_cc3bed67-30d3-447d-a94e-f866ccd39371" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_61b85442-fa7a-483c-9b6b-14940771d1a5" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_cc3bed67-30d3-447d-a94e-f866ccd39371" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_1d575ad1-368c-4575-9769-73d7848fe9e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6e9dc993-efe4-4137-b78a-53e8af748503" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_6e9dc993-efe4-4137-b78a-53e8af748503" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_1e8ea2f6-a4cd-4231-91b4-bd0a7897ab59" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_1e8ea2f6-a4cd-4231-91b4-bd0a7897ab59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_3450c911-dbe8-49bb-b3e8-d2304e8fa4df" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_3450c911-dbe8-49bb-b3e8-d2304e8fa4df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f9a08d3-df1b-4305-8308-6d7e688ddfe0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f9a08d3-df1b-4305-8308-6d7e688ddfe0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_190c84df-5b53-4e80-9133-5baef77147ff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_190c84df-5b53-4e80-9133-5baef77147ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_346ed42b-c8a0-4531-bc98-8d0968c5a3c6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_346ed42b-c8a0-4531-bc98-8d0968c5a3c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_9fd378c1-f196-401c-8dbd-811649e76031" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_ffd6401b-e48b-465d-8975-128670fe13a7" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_9fd378c1-f196-401c-8dbd-811649e76031" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_1c9addb3-fc6b-40a9-85b7-f170c67c9a79" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_1c9addb3-fc6b-40a9-85b7-f170c67c9a79" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_127c975e-6ac4-4f19-a685-7d2365db11eb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_127c975e-6ac4-4f19-a685-7d2365db11eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent_09d22ee4-96b0-4f5c-ba7a-9b6b7439f74f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_AccruedBonusesCurrent_09d22ee4-96b0-4f5c-ba7a-9b6b7439f74f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent_4dfdd0f5-0c61-4ded-a267-58e5d2677d1f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_AccruedSalariesCurrent_4dfdd0f5-0c61-4ded-a267-58e5d2677d1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance_699ba183-2640-45e9-bdb0-3186c654a551" xlink:href="cgnx-20221231.xsd#cgnx_RetirementAllowance"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_cgnx_RetirementAllowance_699ba183-2640-45e9-bdb0-3186c654a551" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent_69cc3450-5103-4411-abc3-1ff440723008" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_AccruedVacationCurrent_69cc3450-5103-4411-abc3-1ff440723008" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_34775ab9-c24c-4472-8379-fbc87363b35b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_34775ab9-c24c-4472-8379-fbc87363b35b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_844d6645-96c1-4243-8f0f-ea892b2facef" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_844d6645-96c1-4243-8f0f-ea892b2facef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_a325e12b-1c91-44fb-b3c5-86a38fd20dbd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6383fa1c-a76d-48be-8034-c28b5cad0684" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_a325e12b-1c91-44fb-b3c5-86a38fd20dbd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_2aa26fe4-3d94-4046-a03f-c59001ec4e36" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_1c9addb3-fc6b-40a9-85b7-f170c67c9a79" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_2aa26fe4-3d94-4046-a03f-c59001ec4e36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_72145807-cfaa-4447-aac3-c0aa19171292" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a94a42aa-3f1f-4d56-ba39-25ebab77a060" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_72145807-cfaa-4447-aac3-c0aa19171292" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a94a42aa-3f1f-4d56-ba39-25ebab77a060" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_c79e6ab1-0702-4098-b48d-fd89fae65fe2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a94a42aa-3f1f-4d56-ba39-25ebab77a060" xlink:to="loc_us-gaap_ProductWarrantyAccrual_c79e6ab1-0702-4098-b48d-fd89fae65fe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_2c3732c8-32c7-497f-b521-dd34eade33c6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a94a42aa-3f1f-4d56-ba39-25ebab77a060" xlink:to="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_2c3732c8-32c7-497f-b521-dd34eade33c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments_07f60123-f65c-4850-b95f-bcee16bc5df6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrualPayments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a94a42aa-3f1f-4d56-ba39-25ebab77a060" xlink:to="loc_us-gaap_ProductWarrantyAccrualPayments_07f60123-f65c-4850-b95f-bcee16bc5df6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_68eaa070-1e86-4b99-ad55-821bd3205c22" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_a94a42aa-3f1f-4d56-ba39-25ebab77a060" xlink:to="loc_us-gaap_ProductWarrantyAccrual_68eaa070-1e86-4b99-ad55-821bd3205c22" 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-20221231.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_8509fd6a-2d05-455f-bb0e-0b11a3d736f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_d3c88bfc-721b-4e2a-817a-9074464c0a1e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_8509fd6a-2d05-455f-bb0e-0b11a3d736f4" xlink:to="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_d3c88bfc-721b-4e2a-817a-9074464c0a1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherInventoryPurchasedGoods_b9816c52-d064-4b15-8df9-054e99bf9906" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherInventoryPurchasedGoods"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_8509fd6a-2d05-455f-bb0e-0b11a3d736f4" xlink:to="loc_us-gaap_OtherInventoryPurchasedGoods_b9816c52-d064-4b15-8df9-054e99bf9906" 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-20221231.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_68b1c4f3-d9a1-44b6-8a7b-67e6d036da20" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_68b1c4f3-d9a1-44b6-8a7b-67e6d036da20" xlink:to="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:to="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_fa5866fa-562f-4ef4-bcfe-6c1288d57498" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_604f37d5-5c5d-41ee-a265-51ef65900366" xlink:to="loc_us-gaap_HedgingDesignationDomain_fa5866fa-562f-4ef4-bcfe-6c1288d57498" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_7ced25ba-97c8-403b-afbb-c75e426ddeeb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_fa5866fa-562f-4ef4-bcfe-6c1288d57498" xlink:to="loc_us-gaap_NondesignatedMember_7ced25ba-97c8-403b-afbb-c75e426ddeeb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_84a793a4-21c2-4cfe-8597-5987248efd0c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_c6137e1c-7a61-4482-b588-6e6ccc093610" xlink:to="loc_us-gaap_DerivativeLineItems_84a793a4-21c2-4cfe-8597-5987248efd0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_07649330-bb6e-4fe4-a647-8925f739edbd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_84a793a4-21c2-4cfe-8597-5987248efd0c" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_07649330-bb6e-4fe4-a647-8925f739edbd" 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-20221231.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_acf6a32f-49fb-467b-a85f-0cebeb197bb7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_acf6a32f-49fb-467b-a85f-0cebeb197bb7" xlink:to="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:to="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_7f19238c-ccd8-4178-9f34-ace59f4cf44e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_1112b4fd-f7db-4b09-aaf9-bf57be70f098" xlink:to="loc_us-gaap_HedgingDesignationDomain_7f19238c-ccd8-4178-9f34-ace59f4cf44e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_95fd1af0-d499-420c-a119-bed785a2882c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_7f19238c-ccd8-4178-9f34-ace59f4cf44e" xlink:to="loc_us-gaap_NondesignatedMember_95fd1af0-d499-420c-a119-bed785a2882c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_CurrencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:to="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_AllCurrenciesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CurrencyAxis_5d82d5ed-37f0-44a8-a0c3-d2f8127a8fdf" xlink:to="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_1151eb39-1296-4b84-90b3-d9c62a979dd7" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_EUR"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_EUR_1151eb39-1296-4b84-90b3-d9c62a979dd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_c23b80c0-0b08-4860-8907-11b4d72acd07" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_JPY"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_JPY_c23b80c0-0b08-4860-8907-11b4d72acd07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_f75dcc42-f4bc-471f-9365-dec65e96ece7" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_MXN"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_MXN_f75dcc42-f4bc-471f-9365-dec65e96ece7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_80318a36-9a4b-4abd-9065-b5884053b9ae" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_GBP"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_GBP_80318a36-9a4b-4abd-9065-b5884053b9ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_7d36d9b6-134c-4425-82ab-2caea8b35f0e" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_HUF"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_HUF_7d36d9b6-134c-4425-82ab-2caea8b35f0e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_0a7e4e83-f713-4af3-9678-9404c77e807b" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_CAD"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_CAD_0a7e4e83-f713-4af3-9678-9404c77e807b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY_93674462-9a6e-4bf6-bcec-c6bec3df10f6" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_CNY"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_CNY_93674462-9a6e-4bf6-bcec-c6bec3df10f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF_0978cffb-e5c3-427a-b660-7cdb22d01790" xlink:href="https://xbrl.sec.gov/currency/2022/currency-2022.xsd#currency_CHF"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_e795a86c-1c0f-4307-b576-fdff8213cef5" xlink:to="loc_currency_CHF_0978cffb-e5c3-427a-b660-7cdb22d01790" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_b792788e-5661-460e-b7e8-e17306a00f10" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_642fcad0-ef26-41a1-912f-43846e4cb93d" xlink:to="loc_us-gaap_DerivativeLineItems_b792788e-5661-460e-b7e8-e17306a00f10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_f6fe3706-7af5-4062-9e7c-e3149163ddad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_b792788e-5661-460e-b7e8-e17306a00f10" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_f6fe3706-7af5-4062-9e7c-e3149163ddad" 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-20221231.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_fa854f80-5661-4a1f-ad02-a20124ed35b5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_fa854f80-5661-4a1f-ad02-a20124ed35b5" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:to="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_c568489b-2f9c-4e0c-9d95-7f0bf4621179" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_43cdb95a-4def-4aad-bc0f-af95f64e5cad" xlink:to="loc_us-gaap_HedgingDesignationDomain_c568489b-2f9c-4e0c-9d95-7f0bf4621179" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_8d6d7f09-5d2e-4699-a24c-82f4b84118de" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_c568489b-2f9c-4e0c-9d95-7f0bf4621179" xlink:to="loc_us-gaap_NondesignatedMember_8d6d7f09-5d2e-4699-a24c-82f4b84118de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_4f6ff67c-7aad-414d-9682-f78f51ce9512" xlink:to="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_649a1030-b3f8-407b-a8ac-d51ee2bd461c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:to="loc_us-gaap_DerivativeAssets_649a1030-b3f8-407b-a8ac-d51ee2bd461c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_61149d60-9085-4fcb-b04c-7f8cd6e5aaab" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b88a3456-485a-4259-b5a5-8be3b5360a47" xlink:to="loc_us-gaap_DerivativeLiabilities_61149d60-9085-4fcb-b04c-7f8cd6e5aaab" 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-20221231.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_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_d4cc916f-4dad-44b8-8807-32c4036c1e0c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_d4cc916f-4dad-44b8-8807-32c4036c1e0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_b6429961-3d84-4d49-bb77-a8e78de5e4c5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_b6429961-3d84-4d49-bb77-a8e78de5e4c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_81af9445-5deb-4202-9ce9-b86c93ba43f9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeAssets_81af9445-5deb-4202-9ce9-b86c93ba43f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_265b390a-fe57-44da-9af2-05a01e69fbb3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_265b390a-fe57-44da-9af2-05a01e69fbb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_d8f4ecb5-601b-4735-b968-e22f2b89cdf4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_d8f4ecb5-601b-4735-b968-e22f2b89cdf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_4923b823-bc44-45ad-868b-4715a8ef5b04" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeLiabilities_4923b823-bc44-45ad-868b-4715a8ef5b04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_782759bc-7a2e-4ed1-a0aa-ed107a4da045" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_782759bc-7a2e-4ed1-a0aa-ed107a4da045" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_76a7923d-5a15-447d-8bb6-c48ebf1f64eb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_80798440-2fc5-4d16-afdd-6ca58206d9a7" xlink:to="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_76a7923d-5a15-447d-8bb6-c48ebf1f64eb" 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-20221231.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_e1425841-d034-4300-bc37-6cd7759cb5cd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_e1425841-d034-4300-bc37-6cd7759cb5cd" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:to="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_5dfc2bbd-0bb4-4885-804e-fbcc87d7804d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_844f55c9-f7d3-4955-ae35-564409f3e349" xlink:to="loc_us-gaap_HedgingDesignationDomain_5dfc2bbd-0bb4-4885-804e-fbcc87d7804d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_04360293-61c8-4578-9b0b-2202d6913314" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_5dfc2bbd-0bb4-4885-804e-fbcc87d7804d" xlink:to="loc_us-gaap_NondesignatedMember_04360293-61c8-4578-9b0b-2202d6913314" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b62e200b-6a31-4ce3-8efe-1dd75ba8b4b0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_1e2a0fc0-32d7-4e31-ac8a-1181842900e8" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b62e200b-6a31-4ce3-8efe-1dd75ba8b4b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_6d68b989-8ca5-4081-98fa-9dc8273bdadb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b62e200b-6a31-4ce3-8efe-1dd75ba8b4b0" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_6d68b989-8ca5-4081-98fa-9dc8273bdadb" 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-20221231.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_80784ed4-1614-46dc-9349-9794b40e665c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostGross_48ec88a9-ff0a-4530-9d63-567a575f6eed" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedContractCostGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_80784ed4-1614-46dc-9349-9794b40e665c" xlink:to="loc_us-gaap_CapitalizedContractCostGross_48ec88a9-ff0a-4530-9d63-567a575f6eed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="simple" xlink:href="cgnx-20221231.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_189363b7-76b2-4ca5-85af-9a2b184184c9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_189363b7-76b2-4ca5-85af-9a2b184184c9" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:to="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_42754672-4715-4987-979e-8ad6f58a33f0" xlink:to="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_36e6c581-8fb2-4af9-a78d-8def9ed17399" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_srt_AmericasMember_36e6c581-8fb2-4af9-a78d-8def9ed17399" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_298294e9-99e0-42da-9f6a-daba31a990a7" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_srt_EuropeMember_298294e9-99e0-42da-9f6a-daba31a990a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_d34057cb-ef7f-4669-b316-4872ed572aa5" xlink:href="cgnx-20221231.xsd#cgnx_GreaterChinaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_cgnx_GreaterChinaMember_d34057cb-ef7f-4669-b316-4872ed572aa5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember_c40f2e36-6412-443c-89d4-0b7b5aaeb132" xlink:href="cgnx-20221231.xsd#cgnx_OtherAsiaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_bd859d6c-31cb-4ea2-9ab3-7f3f572ecbb2" xlink:to="loc_cgnx_OtherAsiaMember_c40f2e36-6412-443c-89d4-0b7b5aaeb132" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:to="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_77a9bcdc-4e86-41dd-8338-46e9774b9f03" xlink:to="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember_27d6ab65-862d-40d8-9e14-5506a609a420" xlink:href="cgnx-20221231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:to="loc_cgnx_StandardProductandServicesMember_27d6ab65-862d-40d8-9e14-5506a609a420" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_b074da61-7182-41da-86ed-6e526a0f6875" xlink:href="cgnx-20221231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_db8a51bd-71fb-45bb-a1b1-eec63d3580d4" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_b074da61-7182-41da-86ed-6e526a0f6875" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_365066f7-daaf-4cd1-996c-b2a37496e21b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_85644eaa-7c4b-4497-b208-f41fa67c1ac2" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_365066f7-daaf-4cd1-996c-b2a37496e21b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d2f25d5-5119-42a7-bb15-da3236285799" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_365066f7-daaf-4cd1-996c-b2a37496e21b" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d2f25d5-5119-42a7-bb15-da3236285799" 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-20221231.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_7022eb67-1dba-4915-8e06-f45a3b92adb3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRecognitionAndDeferredRevenueAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_7022eb67-1dba-4915-8e06-f45a3b92adb3" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_ea898f26-8a4b-4718-b022-2c23301c84f1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_ea898f26-8a4b-4718-b022-2c23301c84f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_df96807f-93b0-4cfa-a62f-c4fd5116f045" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_df96807f-93b0-4cfa-a62f-c4fd5116f045" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_9b46808c-3a2e-424e-be66-7e4e7a5d6808" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_9b46808c-3a2e-424e-be66-7e4e7a5d6808" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_065b23ae-6365-4a05-bf9b-58ccdd287301" xlink:href="cgnx-20221231.xsd#cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:to="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_065b23ae-6365-4a05-bf9b-58ccdd287301" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_3c5ba633-4126-4054-85b7-4570e8f8ce32" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65dbc1b2-83ad-4080-8950-e4e0b644a909" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_3c5ba633-4126-4054-85b7-4570e8f8ce32" 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-20221231.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_da17ed4b-18d9-44ad-adc3-d61c8b8a71a9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_da17ed4b-18d9-44ad-adc3-d61c8b8a71a9" xlink:to="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_719d5481-e67c-4931-a0d2-e2c20dc50cb8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_719d5481-e67c-4931-a0d2-e2c20dc50cb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_70512383-6c45-4613-9a73-47532c26c1af" xlink:href="cgnx-20221231.xsd#cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:to="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_70512383-6c45-4613-9a73-47532c26c1af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_5806c979-edc2-48f0-be2c-1e23b9ddf8dc" xlink:href="cgnx-20221231.xsd#cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:to="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_5806c979-edc2-48f0-be2c-1e23b9ddf8dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_d1a0aad7-c02a-4429-b6f7-ac3b756b6d85" xlink:href="cgnx-20221231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:to="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_d1a0aad7-c02a-4429-b6f7-ac3b756b6d85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_f60958bb-e85b-4510-92b4-d1c332fbb089" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_f3af2670-9ad6-4997-be3a-43e2858124bd" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_f60958bb-e85b-4510-92b4-d1c332fbb089" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_a4613a1a-4b83-49f8-a0e5-7e542e20e99f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_a4613a1a-4b83-49f8-a0e5-7e542e20e99f" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_c2c18409-146f-4b9b-a001-4af550a4385d" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_03c6649a-8803-4ac3-a8b5-5dd35c90a33f" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_03c6649a-8803-4ac3-a8b5-5dd35c90a33f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_765325df-6510-4590-9ecb-cc3477ed4f9c" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_765325df-6510-4590-9ecb-cc3477ed4f9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member_49e2edae-3aef-4426-a7d0-3baec5f709f4" xlink:href="cgnx-20221231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_84998932-145d-4025-ad56-632c69ad620a" xlink:to="loc_cgnx_RepurchaseProgramMarch2022Member_49e2edae-3aef-4426-a7d0-3baec5f709f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_263ddee1-0e7d-4434-b9fe-ad487fa1ca36" xlink:to="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_5b0ff676-05c3-43cc-afef-ce0b07b38697" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_5b0ff676-05c3-43cc-afef-ce0b07b38697" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9a40ed9f-2c5f-4c25-96a8-b40ada6e141e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9a40ed9f-2c5f-4c25-96a8-b40ada6e141e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_48568ff0-3095-4496-b5ec-22227a9d3401" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_48568ff0-3095-4496-b5ec-22227a9d3401" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_480e0451-fd95-41b0-a9f6-79a10db337e6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_480e0451-fd95-41b0-a9f6-79a10db337e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_a9ef6d4e-7a68-4f44-b174-a9587e6019a5" xlink:href="cgnx-20221231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_a9ef6d4e-7a68-4f44-b174-a9587e6019a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_eaf33463-03d1-488b-be69-2e85a7ab1791" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_eaf33463-03d1-488b-be69-2e85a7ab1791" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_6fed7b08-0043-43c4-b6de-6a3add72f9d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_6fed7b08-0043-43c4-b6de-6a3add72f9d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_80ff9645-bac2-42c5-9be5-3fd2ae2a9a64" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_80ff9645-bac2-42c5-9be5-3fd2ae2a9a64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_6eb485c0-96ca-426d-8afb-8a94587293ed" xlink:href="cgnx-20221231.xsd#cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_6eb485c0-96ca-426d-8afb-8a94587293ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_a8737023-d8f8-4e44-8074-37f520ae81a4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_a8737023-d8f8-4e44-8074-37f520ae81a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_6665c467-d33c-4927-9d39-d059afb51983" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_6665c467-d33c-4927-9d39-d059afb51983" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_6104f9df-3586-4ba6-8cb5-1bcdf2390e8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_6104f9df-3586-4ba6-8cb5-1bcdf2390e8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4f7e6088-747f-47cb-8c3c-30dd0dda024e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4f7e6088-747f-47cb-8c3c-30dd0dda024e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareDeclared_488edb6d-b315-46d3-bfe5-b1c6b28aa19d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareDeclared"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_CommonStockDividendsPerShareDeclared_488edb6d-b315-46d3-bfe5-b1c6b28aa19d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends_009d7215-42fe-4b33-9fcf-b20111364f17" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfDividends"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_83cebe34-3536-474d-853c-8a0511caa5fa" xlink:to="loc_us-gaap_PaymentsOfDividends_009d7215-42fe-4b33-9fcf-b20111364f17" 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-20221231.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_c24872de-ba40-4cf2-b017-f846ce33cc67" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_c24872de-ba40-4cf2-b017-f846ce33cc67" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:to="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_fe7e3c08-d453-4cf4-b200-e7af728c2dab" xlink:to="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_b74b0193-53d5-40d1-aca5-7b7a485cd739" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:to="loc_srt_MinimumMember_b74b0193-53d5-40d1-aca5-7b7a485cd739" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_673beaf5-5974-47f3-9a80-ce6eb9c58450" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_d96262f2-4987-4be8-a8c5-041e2271d7f7" xlink:to="loc_srt_MaximumMember_673beaf5-5974-47f3-9a80-ce6eb9c58450" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:to="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_b200ff94-c4a0-4065-9de5-696f32b15c35" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_bed3f92f-80e3-4536-85f5-9fca9bdb74c3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:to="loc_us-gaap_EmployeeStockOptionMember_bed3f92f-80e3-4536-85f5-9fca9bdb74c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_daed7056-59ea-429b-8854-25f2769765e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:to="loc_us-gaap_PerformanceSharesMember_daed7056-59ea-429b-8854-25f2769765e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_da82c2ad-5f12-4787-924f-61b0b81b0dbe" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_73b57516-bf98-4c2c-9327-ec5d3454b9df" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_da82c2ad-5f12-4787-924f-61b0b81b0dbe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_93f4b729-5ed8-4def-a7f1-04816b29a2a7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b2861004-21de-4229-8a62-46f031ee7ccb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b2861004-21de-4229-8a62-46f031ee7ccb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_c8e050bd-f80d-4da9-8040-e07054377b8d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_c8e050bd-f80d-4da9-8040-e07054377b8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_4029aa9d-2e65-471f-978f-411deaabbee2" xlink:href="cgnx-20221231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_4029aa9d-2e65-471f-978f-411deaabbee2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_be09f9a6-bf82-43e3-9600-426b395599f6" xlink:href="cgnx-20221231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_be09f9a6-bf82-43e3-9600-426b395599f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_1f9630df-0d4b-4fc0-96a2-11546eab3f85" xlink:href="cgnx-20221231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_1f9630df-0d4b-4fc0-96a2-11546eab3f85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_9ea43990-4faa-4cff-978e-a8c4a69d9369" xlink:href="cgnx-20221231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_9ea43990-4faa-4cff-978e-a8c4a69d9369" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_ee5d2caf-c1e9-4a5b-9480-4e143dffd14f" xlink:href="cgnx-20221231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_ee5d2caf-c1e9-4a5b-9480-4e143dffd14f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_85e2dabe-ec38-4122-9aa5-4d7c150db2ad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_85e2dabe-ec38-4122-9aa5-4d7c150db2ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_22d7537d-1d5a-464a-95aa-8109c04aa8cc" xlink:href="cgnx-20221231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_22d7537d-1d5a-464a-95aa-8109c04aa8cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_52bba99a-a0f3-4551-8749-cf6267423476" xlink:href="cgnx-20221231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_52bba99a-a0f3-4551-8749-cf6267423476" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_b50f6a75-f17e-48da-b4f1-0a207d70e78e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_b50f6a75-f17e-48da-b4f1-0a207d70e78e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2e463b0f-927d-4b84-9309-caf7c6eb589b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_2e463b0f-927d-4b84-9309-caf7c6eb589b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_9059533f-b71c-4c14-afc7-77896707c4e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_9059533f-b71c-4c14-afc7-77896707c4e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_a016adde-f32d-4f83-8c6e-1eb4114ffb3c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_a016adde-f32d-4f83-8c6e-1eb4114ffb3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_ba02bd8f-d7d9-45f2-9afa-067862e2639d" xlink:href="cgnx-20221231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_ba02bd8f-d7d9-45f2-9afa-067862e2639d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_595cd951-6c5a-469e-adde-05077f8ae0b6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_595cd951-6c5a-469e-adde-05077f8ae0b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4077cdd0-ed05-436d-9767-5badb627d9d8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_4077cdd0-ed05-436d-9767-5badb627d9d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensation_5bc930f4-0015-400a-ae5a-886149439976" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_a0bfaaf2-7639-446c-9fd1-5a3dcf56b251" xlink:to="loc_us-gaap_ShareBasedCompensation_5bc930f4-0015-400a-ae5a-886149439976" 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-20221231.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_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_f13dc9a6-3797-4b49-85f5-0c593db7732c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_f13dc9a6-3797-4b49-85f5-0c593db7732c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_3ee82771-d0f8-4722-a3a4-a8e12f53dd18" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_3ee82771-d0f8-4722-a3a4-a8e12f53dd18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9f9ee322-766c-4efa-bfe3-a200ed63e2dd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_9f9ee322-766c-4efa-bfe3-a200ed63e2dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_746a520d-cfdb-47d0-999b-2cc1aee02310" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_746a520d-cfdb-47d0-999b-2cc1aee02310" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_cb0d5122-a589-4246-ae7a-0212dd19b73f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_d4f72825-80e9-4261-b9cf-81d09cd88d42" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_cb0d5122-a589-4246-ae7a-0212dd19b73f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_dd8b9f9f-9c84-40cb-80b6-2393c00ba634" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_dd8b9f9f-9c84-40cb-80b6-2393c00ba634" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_7a504c0c-6007-42ca-8294-d231429e8830" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_7a504c0c-6007-42ca-8294-d231429e8830" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_52c6724f-f30e-4994-bf0a-a0a14764a1b4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_52c6724f-f30e-4994-bf0a-a0a14764a1b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_ccbed949-1833-4287-8053-24b0d990afe8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_ccbed949-1833-4287-8053-24b0d990afe8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_f574d269-6f54-4c83-afcf-73519a878df4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_3dac27a4-54c5-42c4-b46f-d85effd13afd" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_f574d269-6f54-4c83-afcf-73519a878df4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_851d1f42-0bb6-42f3-a9f4-047bb6de47ac" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_851d1f42-0bb6-42f3-a9f4-047bb6de47ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_0d17ee47-11aa-45c6-a3d5-6561ce287528" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_0d17ee47-11aa-45c6-a3d5-6561ce287528" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_c1326f29-86f9-4369-bc7c-7c59186f46e4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_c1326f29-86f9-4369-bc7c-7c59186f46e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_9c3a8a73-dfd1-44cb-b529-30b3a63f15f6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_9c3a8a73-dfd1-44cb-b529-30b3a63f15f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_b9f74952-151b-4009-9f56-7b756348600c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_b9f74952-151b-4009-9f56-7b756348600c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_b04e4ac0-62d8-4d3a-b62a-5bb3a6d04992" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_b04e4ac0-62d8-4d3a-b62a-5bb3a6d04992" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_35abf65f-0561-4628-be0a-f02e8fa1029a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_35abf65f-0561-4628-be0a-f02e8fa1029a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_270bb63c-bc37-4313-85e1-811470c0da18" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_270bb63c-bc37-4313-85e1-811470c0da18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_9938bcd2-2e6b-4d7b-82c6-1b2af05e33f8" xlink:href="cgnx-20221231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_9938bcd2-2e6b-4d7b-82c6-1b2af05e33f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_7697d16e-c48c-4be3-9094-bfc43f99b631" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_975c1d45-bcae-4eed-ab32-f1a513b638ba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_7697d16e-c48c-4be3-9094-bfc43f99b631" 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-20221231.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_797715b1-5105-4894-83f9-d3a23db39882" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_797715b1-5105-4894-83f9-d3a23db39882" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:to="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_87c89f06-8e0d-4463-a183-205f14e8e99f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_35326f0b-77a0-4425-b55a-1bf6be9a137d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:to="loc_us-gaap_EmployeeStockOptionMember_35326f0b-77a0-4425-b55a-1bf6be9a137d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_30117d26-21fd-4b2d-8803-25bfb5979a1d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_06de320c-31e6-4c2f-a5b6-98ed2fc04d3d" xlink:to="loc_us-gaap_RestrictedStockMember_30117d26-21fd-4b2d-8803-25bfb5979a1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_a2b659a8-4676-4944-a7bf-c36064bae58b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_fbd80494-aef2-43f6-bb2f-3e7f15ac706f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_fbd80494-aef2-43f6-bb2f-3e7f15ac706f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_db860f1e-ff52-412a-a3ae-c3d18d1f4243" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_db860f1e-ff52-412a-a3ae-c3d18d1f4243" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_df98ba14-844a-4572-94df-a40fbdbe1146" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_df98ba14-844a-4572-94df-a40fbdbe1146" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_61b7f794-85dc-4ac9-bbb1-cd5cf0626092" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_8a447eb3-4a70-4103-93a0-6ed1adc02971" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_61b7f794-85dc-4ac9-bbb1-cd5cf0626092" 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-20221231.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_a7b4b3c7-fcd8-440d-921b-0bdd0f982082" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_a7b4b3c7-fcd8-440d-921b-0bdd0f982082" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:to="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2657bdb5-0bf1-4d27-af89-213e9ba3550f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_dc30c77a-89b5-4cdc-999d-7e989c4db450" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2657bdb5-0bf1-4d27-af89-213e9ba3550f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_4e3632b6-b06a-4de5-b4d1-6121590b7cb4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2657bdb5-0bf1-4d27-af89-213e9ba3550f" xlink:to="loc_us-gaap_RestrictedStockMember_4e3632b6-b06a-4de5-b4d1-6121590b7cb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_6f390812-c351-4928-8eb6-8865b89330cf" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_c0f96958-4712-4104-b228-830b85f184be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_c0f96958-4712-4104-b228-830b85f184be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_1e239ded-7e62-4c38-90e8-e13fa221b3bb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_1e239ded-7e62-4c38-90e8-e13fa221b3bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b5ce3e77-27a2-4d59-804b-5f2f4b95ae6d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b5ce3e77-27a2-4d59-804b-5f2f4b95ae6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4f0aeab3-2401-4639-8d96-49be490788b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_4f0aeab3-2401-4639-8d96-49be490788b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_b82619e2-90c0-47b6-bdaa-edd2799a9291" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_e091e995-b552-4b40-8bf4-f5543e5bb2a5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_b82619e2-90c0-47b6-bdaa-edd2799a9291" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_a6c2ab24-cc92-417e-8f1a-4259c843d4d5" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_10033e94-baca-4607-82fd-74d76de3af00" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_10033e94-baca-4607-82fd-74d76de3af00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_5e8decf4-53d4-424b-8049-5f7f9e311cfb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_5e8decf4-53d4-424b-8049-5f7f9e311cfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_14b6cf21-ae34-4924-a3a4-75ca695220bb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_14b6cf21-ae34-4924-a3a4-75ca695220bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9810ca32-7341-4f13-94bf-9f0d758c05e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_9810ca32-7341-4f13-94bf-9f0d758c05e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_bab406d1-2f47-470d-a7ca-038b82d9aa20" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_be01e44e-e250-4f25-91b8-0899d54756fc" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_bab406d1-2f47-470d-a7ca-038b82d9aa20" 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-20221231.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_03244a6e-59f1-4519-a832-89e8b2fe63e7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_16d7849d-8182-4bae-bd2b-1cf7f181fc3c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_03244a6e-59f1-4519-a832-89e8b2fe63e7" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_16d7849d-8182-4bae-bd2b-1cf7f181fc3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_03244a6e-59f1-4519-a832-89e8b2fe63e7" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_1f85872d-43e3-4e51-ab66-cf2682575f82" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember_f005b50a-3e0d-4ef3-916a-edf585e84cd7" xlink:href="cgnx-20221231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:to="loc_cgnx_ProductCostOfRevenueMember_f005b50a-3e0d-4ef3-916a-edf585e84cd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_71f2039e-ddbe-45f0-86a1-1038625b9941" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_71f2039e-ddbe-45f0-86a1-1038625b9941" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_5817d2fb-18b1-4256-9820-abfc5fbacd91" xlink:href="cgnx-20221231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_ed839de5-bd3b-441c-8c10-5494a005c280" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_5817d2fb-18b1-4256-9820-abfc5fbacd91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2f43649e-af37-4395-9de3-5232719226ba" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_07b80345-4906-44bd-a652-2cfafd5a592a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_07b80345-4906-44bd-a652-2cfafd5a592a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f9dc9a47-2cae-475f-8580-e719c8c33ffb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_f9dc9a47-2cae-475f-8580-e719c8c33ffb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_957b18ee-279c-48b0-9a8d-52c5e7f785da" xlink:href="cgnx-20221231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_9fffff85-55a4-43d3-8c45-1f3ae9bee4a6" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_957b18ee-279c-48b0-9a8d-52c5e7f785da" 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-20221231.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_9f20f96a-cc62-4c9f-ab81-3103a3776fd3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_9f20f96a-cc62-4c9f-ab81-3103a3776fd3" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:to="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b044902c-a3dc-4037-b6ec-7bc77bd401a2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_9503c482-aa34-4649-ba85-5464c62ebb52" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b044902c-a3dc-4037-b6ec-7bc77bd401a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_9781b56b-3d44-4824-a21a-fe8feb8a2100" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b044902c-a3dc-4037-b6ec-7bc77bd401a2" xlink:to="loc_us-gaap_PerformanceSharesMember_9781b56b-3d44-4824-a21a-fe8feb8a2100" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_b26bd6ed-feb0-4d43-8315-fc74ce427901" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4f594c07-b577-4d95-aff5-57c0aabcd7e8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4f594c07-b577-4d95-aff5-57c0aabcd7e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ec03e02b-6577-441f-971a-433903695fe3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ec03e02b-6577-441f-971a-433903695fe3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b12c3b39-1cf2-46e8-a203-322889cd786c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_b12c3b39-1cf2-46e8-a203-322889cd786c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_e1ea0dbd-18e2-4ecf-ad6c-f5792531ac91" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_e1ea0dbd-18e2-4ecf-ad6c-f5792531ac91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_43eb16f5-ae95-467e-9667-5f014fdee955" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_43eb16f5-ae95-467e-9667-5f014fdee955" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_3ebfec8e-b5d5-43ed-9211-0f6cb66fa683" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_3ebfec8e-b5d5-43ed-9211-0f6cb66fa683" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_371e98eb-f93f-4a0f-b589-7c78edb63d06" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_371e98eb-f93f-4a0f-b589-7c78edb63d06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_f9d2e87a-5586-4042-8b47-fbb64926bdaa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_f9d2e87a-5586-4042-8b47-fbb64926bdaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_db6ca318-8bc7-46ff-88ae-1bc0b1a30b86" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_db6ca318-8bc7-46ff-88ae-1bc0b1a30b86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d43cb9d7-3ec5-432e-9253-be38613b9416" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_34dbd9ea-b126-4eff-84c2-5ab7d83ad5bf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_d43cb9d7-3ec5-432e-9253-be38613b9416" 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-20221231.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_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_cee3aeff-a051-444f-889e-a87a97bc922e" xlink:href="cgnx-20221231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_cee3aeff-a051-444f-889e-a87a97bc922e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_453dd4a9-c723-483f-86cf-428450fd113e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_453dd4a9-c723-483f-86cf-428450fd113e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_1b40db74-9ba3-4bf3-9c5c-f427bd9609d1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_1b40db74-9ba3-4bf3-9c5c-f427bd9609d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_c5d45172-f2da-4212-9911-1ad32302e38e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_c5d45172-f2da-4212-9911-1ad32302e38e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_42c0b997-3bac-4d95-9fe5-3015c17ea61b" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_42c0b997-3bac-4d95-9fe5-3015c17ea61b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_40fd83d1-d0f9-4162-b245-470aebceaa4e" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_40fd83d1-d0f9-4162-b245-470aebceaa4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_d28e019d-5a81-45ce-9930-c93cc956b4fe" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_d28e019d-5a81-45ce-9930-c93cc956b4fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_8130b0ee-5c94-492c-8229-4b88d5b7f6f4" xlink:href="cgnx-20221231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_8130b0ee-5c94-492c-8229-4b88d5b7f6f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_8e444734-dd24-46ea-8d8c-63559124a4e5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_e8d6a4cf-f184-4553-a51f-60ac68aa3c07" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_8e444734-dd24-46ea-8d8c-63559124a4e5" 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-20221231.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_5e5d4529-9b54-4e54-9832-a7d048e5c07a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_5e5d4529-9b54-4e54-9832-a7d048e5c07a" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxItemsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_DiscreteTaxItemsAxis_3ebed65e-16aa-477d-ae06-669a8ad0ba9c" xlink:to="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_36b20cc5-4402-411c-8770-9f9d221b943b" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember_36b20cc5-4402-411c-8770-9f9d221b943b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseOtherTaxMattersMember_8482e25d-4be4-4811-8374-ee793b66a0ad" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseOtherTaxMattersMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_DiscreteTaxExpenseOtherTaxMattersMember_8482e25d-4be4-4811-8374-ee793b66a0ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember_eee20148-4c3e-4f6a-bdf5-8d2c71e57abb" xlink:href="cgnx-20221231.xsd#cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember_eee20148-4c3e-4f6a-bdf5-8d2c71e57abb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_8d162471-be7b-4a52-9710-1e84b5f6e782" xlink:href="cgnx-20221231.xsd#cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember_8d162471-be7b-4a52-9710-1e84b5f6e782" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_1c4952fd-6002-496b-8f54-42531e2dcc94" xlink:href="cgnx-20221231.xsd#cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_DiscreteTaxItemsDomain_6a9f91a8-b597-4f2f-8395-aa304f269ce3" xlink:to="loc_cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember_1c4952fd-6002-496b-8f54-42531e2dcc94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_2fcdff46-6bd7-4de4-a151-1d4e4b1a0368" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_e9beb5f0-0d52-48c4-ba70-653e93e0dbad" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCountryMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:to="loc_us-gaap_ForeignCountryMember_e9beb5f0-0d52-48c4-ba70-653e93e0dbad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_b14d92d8-d11e-464c-ab84-f15a0e8f7bdb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DomesticCountryMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_43140184-b745-4ab5-8788-161e9c13ec05" xlink:to="loc_us-gaap_DomesticCountryMember_b14d92d8-d11e-464c-ab84-f15a0e8f7bdb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_dc2ac55e-624e-4dd5-bbc1-e724b805db85" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_ad394de6-3c30-46de-8d78-d24411df9f67" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_ad394de6-3c30-46de-8d78-d24411df9f67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_e37b7218-c361-4835-ae66-c79bb23ac733" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_e37b7218-c361-4835-ae66-c79bb23ac733" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP_af3c0350-605e-4cb7-b58a-1ff662876cd1" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_KP"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_eb6605a5-b021-475a-88e1-572eb39969c6" xlink:to="loc_country_KP_af3c0350-605e-4cb7-b58a-1ff662876cd1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_11198a11-ee23-4922-b430-07e42e9af544" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember_e1bce7e4-e997-4d16-a964-08ac3076d9ae" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:to="loc_us-gaap_ResearchMember_e1bce7e4-e997-4d16-a964-08ac3076d9ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StateResearchAndExperimentationMember_4066c504-73c5-425c-8e39-cdd005ae62f3" xlink:href="cgnx-20221231.xsd#cgnx_StateResearchAndExperimentationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_50927674-b8be-4d39-b38d-b2d93fb18071" xlink:to="loc_cgnx_StateResearchAndExperimentationMember_4066c504-73c5-425c-8e39-cdd005ae62f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a2b8ce8e-4925-4569-aea4-2d4822b266b1" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_5ccead25-f21d-44d0-9296-7da2b45c300b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_5ccead25-f21d-44d0-9296-7da2b45c300b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_5ce3469f-6a6a-4464-8c6b-b7afb6427966" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_5ce3469f-6a6a-4464-8c6b-b7afb6427966" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_800bae66-adc1-40b9-9fb4-1bb6a0f2d1ef" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount_800bae66-adc1-40b9-9fb4-1bb6a0f2d1ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_e3cdb1c8-5600-4f22-b95a-fe0929ff6490" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount_e3cdb1c8-5600-4f22-b95a-fe0929ff6490" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_e52b597e-8d61-4751-88ff-53a23adc7683" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount_e52b597e-8d61-4751-88ff-53a23adc7683" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges_5654fa41-3946-4301-acb5-0bf84849767c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges_5654fa41-3946-4301-acb5-0bf84849767c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_4178df09-ac64-4759-999f-cf6a25f49dc6" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount_4178df09-ac64-4759-999f-cf6a25f49dc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_a6bf907f-18e1-4b57-86a3-54f8fea4666e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_a6bf907f-18e1-4b57-86a3-54f8fea4666e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount_69b326d2-e0c0-4235-b054-a9facc1e2c81" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount_69b326d2-e0c0-4235-b054-a9facc1e2c81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_5a7c0e8c-5fa4-42a9-87d7-ee642d037df2" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount_5a7c0e8c-5fa4-42a9-87d7-ee642d037df2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_e8dfe556-72b9-4c98-b0d8-43c0f1b4ec90" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount_e8dfe556-72b9-4c98-b0d8-43c0f1b4ec90" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpense_a93ac7f9-0ccc-4370-8a85-af25c27e076e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationNondeductibleExpense_a93ac7f9-0ccc-4370-8a85-af25c27e076e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign_642c9692-7fe7-429a-87e0-141b4b28619a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxReconciliationTaxSettlementsForeign"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxReconciliationTaxSettlementsForeign_642c9692-7fe7-429a-87e0-141b4b28619a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross_e580e421-31ae-48e2-b389-c9785aa71866" xlink:href="cgnx-20221231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGross_e580e421-31ae-48e2-b389-c9785aa71866" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3aabf1ad-df73-4d21-bbb8-ba9beb315042" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_3aabf1ad-df73-4d21-bbb8-ba9beb315042" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_21451787-4395-450b-96a7-9d6a2a60a3fe" xlink:href="cgnx-20221231.xsd#cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets_21451787-4395-450b-96a7-9d6a2a60a3fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_38a0674c-b815-4fed-a5bf-3bd2f1014e6b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_38a0674c-b815-4fed-a5bf-3bd2f1014e6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_a5c88086-0c55-44fa-9ab8-b118d4fa723a" xlink:href="cgnx-20221231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_a5c88086-0c55-44fa-9ab8-b118d4fa723a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_f811a7a3-d30f-4cf7-80d8-8bf1638e82ca" xlink:href="cgnx-20221231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_f811a7a3-d30f-4cf7-80d8-8bf1638e82ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_0b41b7e2-8f2a-4ccb-8c38-c6b5c7ade2ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_0b41b7e2-8f2a-4ccb-8c38-c6b5c7ade2ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_6dd13d51-182a-4850-b705-c3946d2385d7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_6dd13d51-182a-4850-b705-c3946d2385d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_8b9835d7-90eb-4fae-ab0f-5fc36acb4ab3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_8b9835d7-90eb-4fae-ab0f-5fc36acb4ab3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_9498b4f9-571e-4e44-89cd-86f0084a59e3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_9498b4f9-571e-4e44-89cd-86f0084a59e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_989a7f76-4885-49a3-b9c1-9d260f318af3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_989a7f76-4885-49a3-b9c1-9d260f318af3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_0d91de1d-5098-4409-96f9-af88c9be6876" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_0d91de1d-5098-4409-96f9-af88c9be6876" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_f58312d7-a8b7-4365-a87c-0cf378ca293e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_f58312d7-a8b7-4365-a87c-0cf378ca293e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_dfe4177d-70a7-47fa-a34a-76156daa88a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_dfe4177d-70a7-47fa-a34a-76156daa88a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_6023b198-f129-44ec-9fc6-cd619ae576c9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_6023b198-f129-44ec-9fc6-cd619ae576c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_c857e24a-5406-443e-bbe1-a9514a87f3aa" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_c857e24a-5406-443e-bbe1-a9514a87f3aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_3300f2b0-63a9-4c5b-bb16-0f679c50d5dc" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_071b2200-4bc6-41e1-99ea-5db42c1c1e30" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_3300f2b0-63a9-4c5b-bb16-0f679c50d5dc" 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-20221231.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_1b8d5085-7963-4aac-9424-7ea5af442f83" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_861e2ef2-de44-4935-a663-1b2451c75df1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1b8d5085-7963-4aac-9424-7ea5af442f83" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_861e2ef2-de44-4935-a663-1b2451c75df1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_a259532c-e97a-485d-a68a-7a484f6dbc31" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_861e2ef2-de44-4935-a663-1b2451c75df1" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_a259532c-e97a-485d-a68a-7a484f6dbc31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_eae6b59c-4e86-4c4b-aba2-b3c12f3732cd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_861e2ef2-de44-4935-a663-1b2451c75df1" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_eae6b59c-4e86-4c4b-aba2-b3c12f3732cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_c140b457-6539-42d8-a728-9d1242a27ca3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_861e2ef2-de44-4935-a663-1b2451c75df1" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_c140b457-6539-42d8-a728-9d1242a27ca3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_a2a585e1-31ff-4f7f-afc3-fb48bedb33bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_861e2ef2-de44-4935-a663-1b2451c75df1" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_a2a585e1-31ff-4f7f-afc3-fb48bedb33bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_40bb0925-9683-4bb5-beb3-a8abfe4ebae0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1b8d5085-7963-4aac-9424-7ea5af442f83" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_40bb0925-9683-4bb5-beb3-a8abfe4ebae0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_0840b9f2-94b7-4c3e-bd89-5c0ede28bcaa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_40bb0925-9683-4bb5-beb3-a8abfe4ebae0" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_0840b9f2-94b7-4c3e-bd89-5c0ede28bcaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_890da32c-146a-4aba-aad6-9b4cb5ce4cc4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_40bb0925-9683-4bb5-beb3-a8abfe4ebae0" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_890da32c-146a-4aba-aad6-9b4cb5ce4cc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_e09771b9-e241-4188-8a3b-f331aa1a4803" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_40bb0925-9683-4bb5-beb3-a8abfe4ebae0" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_e09771b9-e241-4188-8a3b-f331aa1a4803" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_cf02f033-a9f2-4e92-95bc-626056d95e3c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_40bb0925-9683-4bb5-beb3-a8abfe4ebae0" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_cf02f033-a9f2-4e92-95bc-626056d95e3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_a20398a3-9ae5-438d-bc47-b0630e8915fc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_1b8d5085-7963-4aac-9424-7ea5af442f83" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_a20398a3-9ae5-438d-bc47-b0630e8915fc" 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-20221231.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_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9d81fcfe-b9e0-46dc-bd19-4f57456fd45c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9d81fcfe-b9e0-46dc-bd19-4f57456fd45c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_6fac8c18-6bd2-4276-a766-523691dc24c8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_6fac8c18-6bd2-4276-a766-523691dc24c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_86925251-a0fa-4c3a-bf23-2c5650537ad8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_86925251-a0fa-4c3a-bf23-2c5650537ad8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_afd6b56d-59f4-4cc0-9efa-2590eb54f277" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_afd6b56d-59f4-4cc0-9efa-2590eb54f277" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_b4764209-aef0-4524-93f5-c72ab375cd90" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_b4764209-aef0-4524-93f5-c72ab375cd90" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_638d6d4b-2c82-470a-9bc5-b960b51899a1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_638d6d4b-2c82-470a-9bc5-b960b51899a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_17f73e76-97d2-449e-b293-0441729313c5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_17f73e76-97d2-449e-b293-0441729313c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_e8800b63-f661-4c75-b7eb-0ec240a256c1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_e8800b63-f661-4c75-b7eb-0ec240a256c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_ae5ab745-fb9f-4e8c-9e92-4ecda7a9720e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_ae5ab745-fb9f-4e8c-9e92-4ecda7a9720e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_d4d2444c-101a-4954-b1e9-6c6b3cf3d2c0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign_d4d2444c-101a-4954-b1e9-6c6b3cf3d2c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_6dfe9596-31a8-4e1d-9a08-5670a8799cfb" xlink:href="cgnx-20221231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_6dfe9596-31a8-4e1d-9a08-5670a8799cfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_6d341b9d-d924-4ee7-819d-c52767a54e06" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_6d341b9d-d924-4ee7-819d-c52767a54e06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3359b610-ff1b-4bf2-869c-a2b40b3ca831" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3359b610-ff1b-4bf2-869c-a2b40b3ca831" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_9617fd60-e828-4cbd-89ad-2846f7d4b3cf" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0e05e831-547f-42de-af2d-a7f08dabca72" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_9617fd60-e828-4cbd-89ad-2846f7d4b3cf" 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-20221231.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_62f9df4f-5592-431d-8ba8-eedeb3cd23c2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_62f9df4f-5592-431d-8ba8-eedeb3cd23c2" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_18b3a9cd-e15b-4577-8bf9-c7f037a57f60" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_18b3a9cd-e15b-4577-8bf9-c7f037a57f60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_46e4761a-c976-498f-9c0c-ffb9f0efc8a6" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_46e4761a-c976-498f-9c0c-ffb9f0efc8a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_1e6d52d8-abc0-4b2c-9700-37d3a5630b68" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_1e6d52d8-abc0-4b2c-9700-37d3a5630b68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_4f89944f-822d-42e1-b475-44b07e426bb8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_4f89944f-822d-42e1-b475-44b07e426bb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_7674b861-6a98-46bd-8273-a376d626a3bb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_7674b861-6a98-46bd-8273-a376d626a3bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_ce6263f7-b963-4288-b8df-f529cb25ca83" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_ce6263f7-b963-4288-b8df-f529cb25ca83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_8dea79d2-35b1-433d-a127-9f0fc378d180" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d5aef6b8-6c46-4c03-8f39-fb0b7620c850" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_8dea79d2-35b1-433d-a127-9f0fc378d180" 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-20221231.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_34f10ac1-1b8b-42ab-85e4-a44855e0a8c1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_34f10ac1-1b8b-42ab-85e4-a44855e0a8c1" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_d5ebcf36-c547-48ec-ba58-76d11a21b121" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_d5ebcf36-c547-48ec-ba58-76d11a21b121" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_80e04f60-4a97-4f52-93b9-f5927b3cb9c0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_80e04f60-4a97-4f52-93b9-f5927b3cb9c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_c0a0895c-898f-4787-8383-f79486bf7031" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_c0a0895c-898f-4787-8383-f79486bf7031" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_c2bcc726-9916-41f8-9a5c-2061fda3377c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_c2bcc726-9916-41f8-9a5c-2061fda3377c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_4dda36ec-d79c-4659-95cf-7ba57e338d30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_4dda36ec-d79c-4659-95cf-7ba57e338d30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_75a3724d-b5b5-4766-9e61-82a93c08780d" xlink:href="cgnx-20221231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_75a3724d-b5b5-4766-9e61-82a93c08780d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_87eb6e9f-8b1a-4d82-ad1f-8cf269a8454d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_87eb6e9f-8b1a-4d82-ad1f-8cf269a8454d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_488d6499-fdf2-4b4b-b857-9d5fa776b6a8" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_488d6499-fdf2-4b4b-b857-9d5fa776b6a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_e084c701-0b97-4232-959f-c159237d38cb" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_e084c701-0b97-4232-959f-c159237d38cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_3e297434-5d31-477f-abf7-a3d937ed5b69" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_3e297434-5d31-477f-abf7-a3d937ed5b69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_52a65aec-ef7e-4998-a5ec-62ac3f7e9ac7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_52a65aec-ef7e-4998-a5ec-62ac3f7e9ac7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_b3bae0a3-1389-4a5a-b839-44d008b881e7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_77075c6e-3cb5-4d90-aa41-853bd8c22553" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_b3bae0a3-1389-4a5a-b839-44d008b881e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_82aae146-e4f7-4be4-b3ac-b452363ed7ed" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_34f10ac1-1b8b-42ab-85e4-a44855e0a8c1" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_82aae146-e4f7-4be4-b3ac-b452363ed7ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_b763f3b3-b9f9-4b79-8180-8cf1715fa9ae" xlink:href="cgnx-20221231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_82aae146-e4f7-4be4-b3ac-b452363ed7ed" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_b763f3b3-b9f9-4b79-8180-8cf1715fa9ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_c3c9653f-b3fa-4084-aa57-8c5174e0a597" xlink:href="cgnx-20221231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_34f10ac1-1b8b-42ab-85e4-a44855e0a8c1" xlink:to="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_c3c9653f-b3fa-4084-aa57-8c5174e0a597" 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-20221231.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_938afd30-98a5-4e77-853d-dff2a2819432" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_1c71e3c2-7e6b-4802-856a-d344cceac45a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_938afd30-98a5-4e77-853d-dff2a2819432" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_1c71e3c2-7e6b-4802-856a-d344cceac45a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_ba755494-143e-4368-aead-523b9813aa35" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_938afd30-98a5-4e77-853d-dff2a2819432" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_ba755494-143e-4368-aead-523b9813aa35" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_dfb37370-e12d-4474-81b7-ffa71bbe61b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_938afd30-98a5-4e77-853d-dff2a2819432" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_dfb37370-e12d-4474-81b7-ffa71bbe61b3" 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-20221231.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_d6e25786-69c5-47e5-acd1-a0b72be40cde" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_d6e25786-69c5-47e5-acd1-a0b72be40cde" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_e24e1cde-6cc9-4fa5-bc5e-4c948883a9e2" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_92ae856e-7389-41f4-b4c8-f4b94ed3e0be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:to="loc_us-gaap_EmployeeStockOptionMember_92ae856e-7389-41f4-b4c8-f4b94ed3e0be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_360a9e27-db58-4896-88ba-d75aa9b3ef6f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:to="loc_us-gaap_RestrictedStockMember_360a9e27-db58-4896-88ba-d75aa9b3ef6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_80eabff3-72ab-40f6-85dd-32f3f38181c2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_fb2b5179-a653-4e0a-b851-a8c54b410610" xlink:to="loc_us-gaap_PerformanceSharesMember_80eabff3-72ab-40f6-85dd-32f3f38181c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_574b8c25-f8ec-48d3-a1e2-e36a038bb4a1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_0f4ecf99-14f7-4a2a-89bc-e8935a9bdc30" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_574b8c25-f8ec-48d3-a1e2-e36a038bb4a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_45a40de0-9fb9-4fd1-bd4e-05a411c978e2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_574b8c25-f8ec-48d3-a1e2-e36a038bb4a1" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_45a40de0-9fb9-4fd1-bd4e-05a411c978e2" 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-20221231.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_ff582b2e-d336-4371-becf-6eeed1116934" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_ff582b2e-d336-4371-becf-6eeed1116934" xlink:to="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_c3dd5053-587c-4f39-8bae-83ef302eeecc" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_6c46bd30-9c95-4ea9-bae1-e29e2f99cc8b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:to="loc_us-gaap_SalesRevenueNetMember_6c46bd30-9c95-4ea9-bae1-e29e2f99cc8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_84c97c92-0802-4e93-9ca7-cdb3235c0452" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_d8dac41a-472e-4be2-9407-5b836291ae32" xlink:to="loc_us-gaap_AccountsReceivableMember_84c97c92-0802-4e93-9ca7-cdb3235c0452" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_5b479687-9c32-40a5-b352-bc922f4a8011" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_9d769a6b-40ae-4a86-92d4-230dce24d93a" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_5b479687-9c32-40a5-b352-bc922f4a8011" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_a771542c-f774-4074-9fd5-37b5ae3d9f6d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_5b479687-9c32-40a5-b352-bc922f4a8011" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_a771542c-f774-4074-9fd5-37b5ae3d9f6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_592f9272-1419-40f3-89e5-62d46131fd2d" xlink:to="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member_70ded0a4-b3f2-479f-809c-f9b0e3aa5163" xlink:href="cgnx-20221231.xsd#cgnx_Customer2Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:to="loc_cgnx_Customer2Member_70ded0a4-b3f2-479f-809c-f9b0e3aa5163" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member_2e37784f-4e72-4f7c-8281-131394d4263a" xlink:href="cgnx-20221231.xsd#cgnx_Customer1Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_6b6ee2a4-4340-477c-bfc0-2e5d63d2c48c" xlink:to="loc_cgnx_Customer1Member_2e37784f-4e72-4f7c-8281-131394d4263a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_69b70f36-c9ab-4f6e-b595-618602285869" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_0285480d-8653-4bab-a206-ecf5568ae37f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:to="loc_us-gaap_NumberOfReportableSegments_0285480d-8653-4bab-a206-ecf5568ae37f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_c0844df6-c08c-4da2-9bcc-0c0c5398d088" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_f1963f51-13b8-4e81-8d85-6e4b907e7221" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_c0844df6-c08c-4da2-9bcc-0c0c5398d088" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="simple" xlink:href="cgnx-20221231.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_bfdd3426-09ce-40e7-b195-73943d4798fa" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_bfdd3426-09ce-40e7-b195-73943d4798fa" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:to="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_79d09e9a-67e6-4ea0-a13a-f92f22c2307d" xlink:to="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_6c9937d4-e27f-430c-918e-60fbcb8079ad" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_country_US_6c9937d4-e27f-430c-918e-60fbcb8079ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_00e0289e-a20b-4f7f-841d-d05c57361a43" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_srt_EuropeMember_00e0289e-a20b-4f7f-841d-d05c57361a43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_59075c37-2392-483d-8f93-6fc4b9f9d1ee" xlink:href="cgnx-20221231.xsd#cgnx_GreaterChinaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_cgnx_GreaterChinaMember_59075c37-2392-483d-8f93-6fc4b9f9d1ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember_ca01bf2e-90e9-4397-bb0e-53fa1530192d" xlink:href="cgnx-20221231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_42782378-e925-492e-a5ae-01338885a29e" xlink:to="loc_cgnx_OtherGeographicAreaMember_ca01bf2e-90e9-4397-bb0e-53fa1530192d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_e359b70a-c2ef-4df5-bb14-e3915f6ef462" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4c7fc9de-b3b1-4e2e-bf73-b5e8a95ba4ca" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_4c7fc9de-b3b1-4e2e-bf73-b5e8a95ba4ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_1a9d0e36-4349-4d8c-82ec-6127d08a2bdd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncurrentAssets"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_2f626366-e618-4482-a73b-b9b5089876ac" xlink:to="loc_us-gaap_NoncurrentAssets_1a9d0e36-4349-4d8c-82ec-6127d08a2bdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#BusinessAcquisitionsSualabCoLtdNarrativeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_01953b8f-40c6-4414-a4da-83cfb504a010" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_01953b8f-40c6-4414-a4da-83cfb504a010" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_73c218d0-132f-472e-8918-ba298e685f7d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_15da69d3-4a54-4b2a-82dd-99adcbbad4be" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_73c218d0-132f-472e-8918-ba298e685f7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SualabCo.Ltd.Member_91a61432-7cb4-41de-8b62-42aff22b784d" xlink:href="cgnx-20221231.xsd#cgnx_SualabCo.Ltd.Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_73c218d0-132f-472e-8918-ba298e685f7d" xlink:to="loc_cgnx_SualabCo.Ltd.Member_91a61432-7cb4-41de-8b62-42aff22b784d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_333dc687-8417-492f-ac8e-9e263f389afb" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_5907fa73-9684-4465-8477-a9e62a3989b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_5907fa73-9684-4465-8477-a9e62a3989b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_a259f52d-7226-49bb-a7d4-1ff1bcda4853" xlink:href="cgnx-20221231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4ebec60f-31f8-4543-a99d-56e4b8d88753" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_a259f52d-7226-49bb-a7d4-1ff1bcda4853" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_15ccb157-89f2-4c93-ae55-272f23761401" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis_afa36b24-6277-4fc3-9ab3-b8323271dc8a" xlink:to="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_15ccb157-89f2-4c93-ae55-272f23761401" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InProcessResearchAndDevelopmentMember_e81d2c2b-d398-428f-b45a-2642f06c8e2b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InProcessResearchAndDevelopmentMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain_15ccb157-89f2-4c93-ae55-272f23761401" xlink:to="loc_us-gaap_InProcessResearchAndDevelopmentMember_e81d2c2b-d398-428f-b45a-2642f06c8e2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_d78d5de3-29e8-4c38-8d66-2f51aa2fedce" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_47f3bbdd-28f8-49f0-8fd0-416cd74681b9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_47f3bbdd-28f8-49f0-8fd0-416cd74681b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_118d2243-9fa2-4942-8792-bf7bf5564875" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_118d2243-9fa2-4942-8792-bf7bf5564875" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForProceedsFromPreviousAcquisition_d1df9c76-1f38-4928-867a-56d025b6cc3d" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForProceedsFromPreviousAcquisition"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_PaymentsForProceedsFromPreviousAcquisition_d1df9c76-1f38-4928-867a-56d025b6cc3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_e4cb07a7-fe80-415a-9948-c4e77f80f788" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_BusinessCombinationContingentConsiderationLiability_e4cb07a7-fe80-415a-9948-c4e77f80f788" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f3dab7d-df48-4f31-b7b9-42faa6e60c9b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill_4f3dab7d-df48-4f31-b7b9-42faa6e60c9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_13e2fef1-e0a1-4bfc-87e5-b16391591be3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_b90734c3-4cc9-4db2-a4f7-0fb192e75e72" xlink:to="loc_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill_13e2fef1-e0a1-4bfc-87e5-b16391591be3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFireDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#LossfromFireDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LossfromFireDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes_e56e33cb-33d7-43b5-9206-d84eb987c707" xlink:href="cgnx-20221231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:to="loc_cgnx_GrossLossFromCatastrophes_e56e33cb-33d7-43b5-9206-d84eb987c707" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWriteDown_b17175cd-f83b-485f-8326-62940cedddff" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryWriteDown"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:to="loc_us-gaap_InventoryWriteDown_b17175cd-f83b-485f-8326-62940cedddff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetImpairmentCharges_564a95ef-1154-4bd2-bb04-c709814ad35f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetImpairmentCharges"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:to="loc_us-gaap_AssetImpairmentCharges_564a95ef-1154-4bd2-bb04-c709814ad35f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSoldOverhead_34c403e0-0ea1-44f3-8d0e-eb700619b0ce" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfGoodsAndServicesSoldOverhead"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSoldOverhead_34c403e0-0ea1-44f3-8d0e-eb700619b0ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries_5964ca7f-f4b1-4a71-8cba-89ad66fcc447" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InsuranceRecoveries"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:to="loc_us-gaap_InsuranceRecoveries_5964ca7f-f4b1-4a71-8cba-89ad66fcc447" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_53d2f132-a478-4712-991e-ecdeba55629f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LossFromCatastrophes"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_8778a09e-491e-4b8a-b0b0-44e2199cc1c0" xlink:to="loc_us-gaap_LossFromCatastrophes_53d2f132-a478-4712-991e-ecdeba55629f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringChargesAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_b0ff7ed0-4b5a-4aea-be9a-80dc293b9dec" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_75541ed1-26b9-4806-a909-344056b0ff8a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_b0ff7ed0-4b5a-4aea-be9a-80dc293b9dec" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_75541ed1-26b9-4806-a909-344056b0ff8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_2877d64a-8939-4469-bfe0-e944fae44645" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_b0ff7ed0-4b5a-4aea-be9a-80dc293b9dec" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent_2877d64a-8939-4469-bfe0-e944fae44645" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_6e74c157-ec8b-45d2-b397-f54b64030e18" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_b0ff7ed0-4b5a-4aea-be9a-80dc293b9dec" xlink:to="loc_us-gaap_RestructuringCharges_6e74c157-ec8b-45d2-b397-f54b64030e18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_51665bed-6ce9-4339-a2a9-8d5a1b922ae8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_51665bed-6ce9-4339-a2a9-8d5a1b922ae8" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_40ce6737-dad0-4e05-a706-35a668d2a4f4" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_0e7326c8-4f5c-431a-9ff2-4a6af32a98cb" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_0e7326c8-4f5c-431a-9ff2-4a6af32a98cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_bb6f6643-436f-4c2c-aa14-1bbda06bbee3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:to="loc_us-gaap_ContractTerminationMember_bb6f6643-436f-4c2c-aa14-1bbda06bbee3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_82767e38-753a-4baf-975b-68e30839a53f" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherRestructuringMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6316abfc-a877-4205-8c4a-146143ef286f" xlink:to="loc_us-gaap_OtherRestructuringMember_82767e38-753a-4baf-975b-68e30839a53f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_4be31633-cbdd-45dd-868f-d4bf6cedc9d2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_8c8cee7e-c7a4-4462-b208-6d0e00feefe9" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_4be31633-cbdd-45dd-868f-d4bf6cedc9d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_9f7c47a0-7360-4f52-9d9d-4b4e97beb3b5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_4be31633-cbdd-45dd-868f-d4bf6cedc9d2" xlink:to="loc_us-gaap_RestructuringCharges_9f7c47a0-7360-4f52-9d9d-4b4e97beb3b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="simple" xlink:href="cgnx-20221231.xsd#RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_c8528081-0397-435a-9f38-6f614fff7277" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_c8528081-0397-435a-9f38-6f614fff7277" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_6f20d523-488e-49d3-9f04-f8cc6379ce37" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_7a8d4bde-7407-4cab-a2f5-ac390d188cd4" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_6f20d523-488e-49d3-9f04-f8cc6379ce37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesMember_1edda0a7-4101-450b-8dfc-5cc44319b078" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_6f20d523-488e-49d3-9f04-f8cc6379ce37" xlink:to="loc_us-gaap_AccruedLiabilitiesMember_1edda0a7-4101-450b-8dfc-5cc44319b078" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_e07a97f5-4938-4572-b57f-9b91b3158030" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_bc206530-c319-411d-b44a-c4453a8d7b60" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_bc206530-c319-411d-b44a-c4453a8d7b60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_21e52eac-c371-482b-ad93-f94cb4ee5fd1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:to="loc_us-gaap_ContractTerminationMember_21e52eac-c371-482b-ad93-f94cb4ee5fd1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherRestructuringMember_5db5a445-d717-4ba1-b831-f69e9f10f596" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherRestructuringMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_731ce639-7cc8-462d-9f47-9bf0ae0e7ce5" xlink:to="loc_us-gaap_OtherRestructuringMember_5db5a445-d717-4ba1-b831-f69e9f10f596" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringPlanAxis_04a4ec04-64ad-4af4-b3e0-b12e5252d2af" xlink:to="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_May2020Member_f19d41b6-1eba-4c8f-8ee4-be7b0c3735f0" xlink:href="cgnx-20221231.xsd#cgnx_May2020Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:to="loc_cgnx_May2020Member_f19d41b6-1eba-4c8f-8ee4-be7b0c3735f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_December2022Member_3fcba0c9-8cac-4ae3-b2bf-0e802af2eefe" xlink:href="cgnx-20221231.xsd#cgnx_December2022Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringPlanDomain_fd2217ba-f5dd-4567-8e19-1d786ad836b8" xlink:to="loc_cgnx_December2022Member_3fcba0c9-8cac-4ae3-b2bf-0e802af2eefe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_e3d29902-8ea6-4918-bc67-c640d8c4bdc9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_df64abd3-9b11-42d1-a82c-9d9ca11739b2" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_e3d29902-8ea6-4918-bc67-c640d8c4bdc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_e3d29902-8ea6-4918-bc67-c640d8c4bdc9" xlink:to="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_47c000df-46ac-47cc-9bff-7c2b90308148" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserve"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringReserve_47c000df-46ac-47cc-9bff-7c2b90308148" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_dc2fd2e3-8982-487b-9703-6d50379451bd" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringCharges_dc2fd2e3-8982-487b-9703-6d50379451bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring_aa149a2b-0626-4b0a-a5ef-f640d61b258b" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_PaymentsForRestructuring_aa149a2b-0626-4b0a-a5ef-f640d61b258b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment_307e2463-6420-4b8d-81ea-a4ad26520193" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringReserveTranslationAdjustment_307e2463-6420-4b8d-81ea-a4ad26520193" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_e4e2cc05-7a5a-4fe0-adc8-28851ca1239c" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestructuringReserve"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_a6f556e1-a7fc-4a8f-8930-c4525df1732c" xlink:to="loc_us-gaap_RestructuringReserve_e4e2cc05-7a5a-4fe0-adc8-28851ca1239c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20221231.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_f00af04d-9ebf-451f-80bf-e4d328c5ebb0" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_f00af04d-9ebf-451f-80bf-e4d328c5ebb0" xlink:to="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_58cf99eb-bad6-414e-b40d-9cdb73691ead" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_b7ae3107-ea13-4772-9a3f-5d48b0d94c03" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_58cf99eb-bad6-414e-b40d-9cdb73691ead" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_de368f5a-5e39-48b5-829c-7fc0f29ed4c7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_58cf99eb-bad6-414e-b40d-9cdb73691ead" xlink:to="loc_us-gaap_SubsequentEventMember_de368f5a-5e39-48b5-829c-7fc0f29ed4c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_90098864-90da-4f56-b616-4d12faf924e1" xlink:to="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_6203e053-ed20-43ca-a2af-ef0dcad252f3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_6203e053-ed20-43ca-a2af-ef0dcad252f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_e6b7ff3d-8ea8-46c4-9954-014c8f88a812" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_e6b7ff3d-8ea8-46c4-9954-014c8f88a812" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_663d0610-51ea-4d3b-851f-5ad2c745acf7" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_44656ea4-e745-450a-8571-55e495c783e9" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_663d0610-51ea-4d3b-851f-5ad2c745acf7" 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-20221231.xsd#ScheduleIIValuationandQualifyingAccountsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_2e6c14aa-6f09-4e64-9fe7-76a99b7e3467" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_2e6c14aa-6f09-4e64-9fe7-76a99b7e3467" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_eb21c223-796e-4b99-808a-ce849301eda1" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_2d98d99c-5477-411d-83b7-e1a9a798f1b2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_2d98d99c-5477-411d-83b7-e1a9a798f1b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember_7b066c33-339a-4f93-96a4-685a94ed6362" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:to="loc_us-gaap_SalesReturnsAndAllowancesMember_7b066c33-339a-4f93-96a4-685a94ed6362" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_112fb2ce-4b10-474d-a8c8-3746446b5547" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_0e352442-b356-4d6d-95c6-644234c8af2a" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_112fb2ce-4b10-474d-a8c8-3746446b5547" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_a708f88e-cc41-4465-abb0-a9466ce70309" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_8085ac31-91ae-4070-8c18-6b488a13af74" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_a708f88e-cc41-4465-abb0-a9466ce70309" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_a708f88e-cc41-4465-abb0-a9466ce70309" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_83687bdb-eb9a-47a8-ad57-79150536743e" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_83687bdb-eb9a-47a8-ad57-79150536743e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_cd5e3bd9-8205-422d-9cc1-ace2c2e6a4d2" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_cd5e3bd9-8205-422d-9cc1-ace2c2e6a4d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_ea1aff75-f965-417b-bc8c-4061d1dce162" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_ea1aff75-f965-417b-bc8c-4061d1dce162" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_f6cd21fe-7bf3-4a59-bef0-a7caf681e773" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_f6cd21fe-7bf3-4a59-bef0-a7caf681e773" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_9148408e-2aa2-4f55-98c9-c784989797b3" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_9148408e-2aa2-4f55-98c9-c784989797b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_40663c82-1617-485c-bf65-881e3f5393ba" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_9ad3e76c-efef-4985-a3b4-dd8172b50312" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_40663c82-1617-485c-bf65-881e3f5393ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>13
<FILENAME>cgnx-20221231_g1.jpg
<TEXT>
begin 644 cgnx-20221231_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
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
M7_!R_P#M.>*/VEO^"PWQ3@U?4Y9-*^'][%X/\.V;.2MI!9(!.%_W[M[J0_\
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
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 ]*
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
M>#_ .B1^&O OA33=%TZ)V:+3])L([:!&8Y8A(P%!)Y)QR:TJ "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** .;^,/QA^&'[/_POUWXT_&CQM8>'/"OAK3I+[7-;U*79#:P(
M.6/4L2<*JJ"S,RJH+$ _AA\7/^#FK_@H-_P4>_:EM?V,_P#@B%\!K73'U*XD
MCL?&7BG3HKK498(_]9?O%-FTT^V4')\Y9F(V?==A%7)?\'G_ /P4$\5ZE\4/
M!?\ P3>\#:Y+;Z#I>DP^*O'<5O(0+Z]F>1+*VD]5ABC:;;RK-<QL>8UQ[7_P
M93?LK>&O"W[*?Q,_;'U'2HFU_P 6^,?^$:TZ[DC!>'3;&"&9PC?PK)<7)W@=
M3:QY^Z* /I'X3?\ !,'_ (+EVVAP>,/BK_P7\U2T\82IYEQINC_!K2M0T>VD
M(YC"W!B\],]_*A..B@\U\W_\%4/^"O'_  7!_P""2?P@U3X7?M+?!GX=^,$\
M86%QI7P]_:*\#+<V$-I=O$WSW5A()$2_1-TJ1YCB8IE?.6.05^VE>&?\%)_V
M)_"G_!0[]B/X@_LD^*&M()?%.ANN@ZG>PETTS58L2V5W\OS8CG2,L%Y9-Z]&
M(H O?&CP#^TY\6/@KI6H_LY_M.R_#_Q0OALRPW%QX5L=5M+^\DAC:(W,=PF\
M(KAL^4Z$B0DYPM?S2^'_ /@ZZ_X+9>)/$ECX6L/B_P"#1=7]]%:PB3P!8@"1
MW"#/R=,D5_5AX4TB7P_X7TW0;B59)+*PAMW=.C%$"DC/;BOX0/A'_P EX\,?
M]C=9?^E24 ?W"_L[?"WX^?#G1/\ B_O[4%[\1M5GLH4GD;PKI^E6D$ZC]X\$
M=M&) K$\+)))@ <YR3\??\%V_BO_ ,%'_P!A[]DOQA^W-^R)^UI8P:=X4O;&
M75O GB+P%IUW&EE<7,-H6MKG8LFY)9DD(EWY4OAAM /Z%5\-_P#!R?\ \H1/
MCU_V!-+_ /3S84 >M_LC?"G]M^X_9XL-7_:E_;.N=7\<>(_#%K-<R>'/!&E6
M5GH%W(J2N+=&@D-P4R8MTQ*N,MY:$@+^27_!:+_@K!_P6Y_X)>?M7^(/@_\
M#K]I'0/&?@_3/#&E>(%UR]^&>G17-C:W\]Q;1)<B-=I(GMG3S%"J=\?RJ6Q7
M[P> /^1$T3_L$6W_ **6OS8_:Z_9-\&_MT?\%=OC]^R9XZ\M++QM^PWI-C!=
MRIN%E>#Q)>R6ET!W,-PD,H'K&* /'_\ @VG_ ."_G[1G_!1;X^>-OV7/VVO%
M6B7OB-M!CUKP%>:9HT-@)HX'*7MJRQ@"1]LL,J<9"Q3$Y &/V=K^'G]E_P"-
M7QC_ ."6O_!0GPY\5[O1;FP\6?"'Q^]OXBT0OM>06\SVNH6#'L)(O/@)]')K
M^V'P9\7_ (<>/OA!I?QZ\,^*[2;PEK/AR'7K#6WE"0-ITL N$N"QX5/*8,2>
M@H _,3_@Y!_X+(?M6_L 7_A[X4?L*WNE1>)-+\-MXO\ B9JFIZ1%>II>C2WT
M&F6$>R4%0\]W,_\ M 0 CY2U?'G_  1F_P""WO\ P61_X*F_MUZ%^RGXB_:D
M\,>%]&GTF]U;7-7L/AKI\URMM;1AC'"KKM#N[(FYLA0Q;:V-IW/^"B.@ZM\?
M/^"(O[4O_!5WQYILT6J?M%?%'P_+X*AO(RLMAX*TO6(++1X=K?ZMI52:Y?;@
M/YR,1GFOE3_@S[_Y3#6O_9,]<_\ ;>@#^D3XY?!?]KG4O@I'I7P*_;2U'1/&
M>D:1>F/7-8\$Z3>PZQ=M\\!NH!!&(T3'EX@,9*MEMS#)_FQ\(?\ !UI_P6R\
M:>+-+\':5\8_!BW6K:C!9VQD\ 6(422R*BYPG3+"OZN+O_CTE_ZYM_*OX.?V
M=/\ DX/P)_V.6E_^E<5 ']PG[/7PO^.WPXT9E^._[3M_\1M3GM85EED\+:?I
M5K!,H/F/#%:QAPKD_=DDDP%&#G)/QI_P7C^+_P#P4C_83_9,\6?MT?LD?M:6
M,>E>%]2L6UGP+XC\ Z==1Q6=U=0V8:VN0BR;DFGC8K)ORK.=PV@']$:^$/\
M@YH_Y0<_'?\ [!^B?^G_ $Z@#VO]EKX/_MO#]G^UN/VH/VTKK5O'6O>'K62Z
MN?#?@C2;*TT&\;9+(+9'@D,^WF+=,2&&6"(2-OXU_P#!:O\ X+6_\%CO^"4O
M[<FH_LN^&?VJ/#/BK1)= LM;T+5-0^&NGPW0MKCS%\J8(NPNCQ2+N7 8!3M7
M)4?T&>'O^0!8_P#7G%_Z *_EL_X/(?\ E+EI_P#V2'1O_2J_H _6_P#X(%_M
M!?\ !1S_ (*2?LI67[9?[3O[8T5K87GBRYL],\)>%? &E6ZSVUI(J2&XN)89
M'_>/O7;&$*JN0^6^3],*_-'_ (-)_P#E"WX._P"QP\0?^ESU^EU !1110!^>
MW_!QM_P5A\3?\$L_V/M#UCX-:K:1?$SQQXKMK3PM%<QK(L=G:RQW-_.R-PT?
MEB.V/<&]4CI7V5^RM^T9X!_:Z_9O\$_M-_"^Z\S0O''ANUU>P4N&>#S8P7@?
M'_+2)]\3CL\;#M7\SW_!S5XJ^/?[;?Q>U']OW0;0W'P&\%^/[SX1>!K^-V*S
MWUC$+B\OE &UHKBZ-W&DP.&6R5?X17VE_P &7W_!0#_A,_A%XW_X)S>.M;W7
M_@^=_%'@2.:3EM,N)52^MT'98KIXYL=2;Z0]%H _<ZOR%\6?M5?\%YOVK/\
M@L!\;_V-OV'?BSX&\)?##X5:CIZ:CXI\6^#(+J'34N;&"9+<,$:2YN)':9E3
M@!4)9U&W/Z]5POP@_9X^'/P1\5_$#QKX)MKG^T?B7XQ_X27Q/<74B.7O!8VE
MBJH54%8EALXL(2V&9SGYL4 ?C7_P6S_;]_X+@?\ !&?P[\-];US]OGP)\0'^
M(5SJD/D6GP4L]-%@;-;5B=S3S>:'^TXZ)C9WSQ)_P1+_ &]_^"WO_!9?PQ\1
MO$6C_M^>!?A\W@"\TVW,%S\$K/4Q?F[2Y8'<MQ#Y07[/CHV=_;'.#_P?(?\
M(B_LW?\ 86\4_P#HK2ZF_P"#'+_DFW[1G_8<\,_^B=2H ]F\-?M6_P#!>/\
M91_X+"?!']C/]MWXM>"/%WPN^*FIWZ:9XK\*^"[>TBU2.VL9II("=@DM;B-Q
M"S)D@JX*NX)QZ!_P<%_M,_\ !1__ ()G_LUC]L7]F#]KZVN=*E\;0Z;J/@[Q
M1X TNX%I!=B9HC;W,<2.5B:-8]LH=F5PQDRIW_H#\8?V=?AM\<?%GP_\;^-[
M2X.I?#3QA_PDGA>YM9%1H[PV5U9,KDJ2T30W<NY!C+*AS\M?GI_P=_?\H==0
M_P"RD:'_ .A34 ?'7_!#S_@LS_P6)_X*T_MMC]FGQ;^U5X<\*Z#IGA.\\1:[
MJ6F?#;3I;N2W@EMX!##YB[%=I;J+YF# *&.TG K]+O\ @K7_ ,/-?V>/V+];
M_:,_8?\ VIQ?^(/ASX8;4/$/ASQ'X"TR[/B&V@=Y;JZ1XXH_(G2 EA&BE'6W
M"A0[EC^*G_!ES_RE8\8?]D)U;_T[:/7]0EY9VFH6DMA?VL<\$\;1SP3(&21&
M&"K \$$$@@]: /YB_P!AK_@YE_X*Q?M._MA_#7]G;XJ?M4>$_".@>-O&-CHN
MH^(HOAQI\K68N)1&I 8!06=E0,QVKNW'(!%?TL_#3POXM\'>$+?0?''Q+O\
MQ=J43N9]=U+3[6UEF!8D QVL<<2A00HPN2!DDGFOXRO^"QW[#FK?\$UO^"D7
MC_\ 9^T2"XLM#M=8&M^ +M'92='NB9[0H_4M#EK=G&/WEL^*_JS_ ."-7[=M
MI_P47_X)T_#K]I.[U".;Q%-I0TKQQ$A ,6M6F(;HE1]P2D+<*O:.X2@#A/\
M@MG\2?VT?V3?V//'_P"VM^S!^U[9^%?^$'TJWO&\(>(?!.GW]C>@SQ0-&D[H
M)HI7:4%26=2V$VJ&W"Y_P3"\*_\ !57XJ?LIV?Q>_;^_:I@TOQ9XY\/0WFB^
M&/"_@'3;63PM'*8Y8GG>6)Q/=&(;7B9 D?FLN&=0XYS_ (*/0)^W/^WE\%O^
M"6^GH+OPGHL\?Q8^.T8^:*32-/GV:3I<H^ZZW>H89XSAO+M0XR*^\Z /YZ/^
M"UW_  6K_P""QO\ P2C_ &X[[]E[PQ^U3X9\5:)/X>LM<T/5-0^&NGPW0MK@
MR)Y4P1=A=)(9!N7 8;3M4DJ/J3_@E!\5_P#@N'_P5'_8RTK]KS3/^"F/@/P6
MFJZOJ%BGA^?X!6E^8S:S&+>9Q=Q9#8SC9Q[U^:G_  >2?\I<--_[(_HW_I7J
M%?J[_P &JGB_PM\/_P#@ACH?COQQX@M-)T;1O$7B6^U;5+^<106EM%=2/)+(
M[<*BJI8D] * /'_^"HWQ<_X.>?\ @FW\(+[]H[2?VF/AC\3_  %HX5O$.I>'
MOAM;VM]I$18+]HGM)%;,&YE!>.20KDEU506K]4_V)OB?XN^-W[&?PC^-'C^[
MBGU[Q?\ #'0-:UN>"!8DDN[K3H)YF5%X0&21B%' ' KQ+_@FA\9+7_@J+_P2
M\E^)GQ:GFU?1/BUJOCRR:WO8E##0IO$6KV=K:%0 ,16(AA&1G$8R2<D_0_[-
M_P '+;]G;]G?P%^S]9:])JL/@7P7I?AZ+5);<1->+96D5L)B@+!"XBW%03C.
M,GK0!VE?EA_P55_;$_X+$P_\%=?A[_P3N_X)>^(_"]A;>)?A#;^*=?O/$_AV
M"YM=*7^T]0MI[ZXG>-WCA5(+= JJQ9V554L^*_4^N%T_]GCX<Z=^TOJ_[6,=
MM<2>+M9\"Z=X2EFED0PP:;9WM]>(L2[=RM)+?.9"6(80PX"E26 /RU_X*K_&
MO_@NS_P2R_8MG_:X\7_\%'_AUXNGMM>L-,G\-Z;\#;6U3=<LR[UN7G8D*5Z&
M(9]J^:O^"-7_  6,_P""V7_!7?\ :GU;]F33OVS?!/@*32O ]WXC.LS_  ?L
MM2$H@NK.W\CRA+#@G[7NW[CCR\8.<C[8_P"#O7_E#?J__90M"_\ 1LE?EO\
M\&7?_*5KQ=_V0O5O_3MH] 'W/_P4<_:0_P"#C/\ X)D>+O 7C?QG^TS\//B/
M\+/$WC33M#U3Q+H/PTMK*?3IKB=5$5S;MO,*R+N"2I(Z[AM;8S('_8[QQXX\
M'_#/P;JOQ#^(7B:QT70M#T^6^UC5]3N5AM[.VB0O)+([$!$5022>@%<Q^TM^
MSI\-OVK_ (,:M\"/BW:7$VA:Q+:33_8Y%2:*6VNHKN"6-F5@K)-!&X)!^[7X
M\?\ !Z/^W'XO^&WP0^'7["G@/6Y;.+XA7%QKOC8P2%6GT^SDC6UM6]8Y+AGE
M8?WK./L2* ,[XQ?\'-?[8/[?W[8^D_L(?\$1?A#H\4FN:G)9V?Q(\<V#32SQ
M1AFFU!+9OW=G:1HKR%IUFD9 /W2.1&?NNQ_X)\?\%>O^%>+<ZE_P7=\3CQT8
M/,>ZA^!WA<Z*DQ7_ %8M3;>8T8/&[S02!NV@\#\P_P#@R#^!6AZU\7OCM^TG
MJ=@CW_A[P_H_A[2)W7)1+Z:XN+G;Z'_0;89]&(]:_HDH _#+PE_P<G_ML_\
M!-+]M34OV%/^"UWPET+6+?2[N*,_$SX?Z>]O,;28!H=2%L/W5Y;.IR1$D,J8
M=2CR(8J_;/X=?$7P+\7? >C_ !1^&'BRQUWP[X@TZ*_T76=,N!+;WEM*H>.6
M-QP5*D&OP/\ ^#X+X*:%:Z]\ OVB]/T^--2O;36_#FK700;I8(6M;FT0GT5I
M[P_]M*[;_@RO_;?\7>./AG\2OV"O&^M2W=IX+,'B7P0DTA8VMG<RM%?6ZY^[
M&LY@E51_'=3'O0!V/_!./]HS_@X\_P""FVM^-_B)X+_:8^''PY^&'A_QEJ.B
M:1XB\0?#6WO+C4Y;>=D9+6! IE2,!5>5Y$7>2J[V5PG@?_!8O_@LO_P6R_X)
M(_M76/[+VH_ME>"?'DE[X-L]?&M0_""RTT()Y[F'R?*,LV=OV;.[=SOQ@8R?
MWE_9K_9X^'/[*7P5T;X"_">VN8]"T,W+6OVR1'FDDN+F6YFDD9%52[S32.2%
M&2QK^:/_ (/,/^4L^A?]D7T?_P!+]3H _1K_ ()6_%__ (+J?\%1OV)[']K[
MPM_P4F^'GA&;4=7U"PM_#>H? JUNE#6TOE[FN4N4(#=>(CCWKK/^"4'[97_!
M86^_X*V_$?\ X)X?\%0O$/AB\B\+?":?Q/H5SX9\/06UMJBG4K"W@OK>=$1Y
M(62:X7:P4JZLK*&0@;G_  :._P#*&+PM_P!CMK__ *5FOOF^_9T^&U]^TUI?
M[6K6EQ'XPTOP)?\ A%)XI%$5QIMU>V=ZRRKMW,T<UFIC(8!1/-D,6!4 [NOF
MC_@KY^W?IG_!.+_@GQ\0OVGS=PKKMCI1T[P5;38/VG6[K,-H-I^^J.QF=?\
MGG!)Z5]+U^ 7_!V#XK^/7[;&I>+_ (8? .T-]\-/V2]-TK6OBU/#(Q\W7=:D
M$-M$J@$2&ULSYC$']V+N;<!@4 ?J9_P1*_;^B_X*1_\ !.3P%^T-K&J17'BN
MWM#H7C]$"@IK5F%2=V5>$\Y3%<A1P%N5':OK&OYCO^#.K]O_ /X41^V?KW[$
M7CC6_*\._&"P\_0%FDPD&OV4;N@&>%\^V\Y">K/#;J,\5_3C0!\8?\%D_%7[
M<'[-G[(OQ'_;&_9*_:P&@7/@;0AJ[>#==\$Z;J%A<6\.P3HDS1+/&[+ND#,\
M@W#;M 8%?QI_X)W?\'#W_!:S]O3]MCX<_LAV_P"T?X.T!?''B!;*YUG_ (5M
M8SFSMUC>::18\+O<11OM4D M@$@<U^W7_!<C_E$'^T5_V2O5/_15?S#_ /!N
M5_RFO^ 7_8S7G_ILO* /Z^?A'X(\>^ _#4FD_$7XSZIXYOY+DR_VKJNE6-FT
M:[5'E)'9PQ)M!!;+!FRQ^;  '5444 %8WQ!\/>)O%7@Z]T#P=X^N_"^I7"*+
M77K&RM[F6T(=6)6.Y1XFRH*_,IX8D8(!&S10!_.S_P %D_\ @M__ ,%EO^"6
M?[=6O?LHZ%^U)X7\4Z/;:79:KHFL7OPTT^"X>VN8]P29$!7>CJZ%EP&"AL+G
M:/LK_@FCXN_X+@?\%(_V!/!O[;'AO_@J#X$\*WGC#^U!%X3OOV?+.YCMC9ZE
M=V(S>+>J6WFV#\0#;YF/FVY;\J/^#P+_ )3#WG_9-=#_ /:]?MA_P:U_\H+/
M@E_UT\3?^I+JE 'Y^_M,?\'$?_!:;_@D)^UZW[-'_!0WX._"OX@V4=M#J,&H
M>'K*YTUM:TR1W5;FRND;8F6CD0B6V8J\;*1QD_M)^P?^W!\#?^"B7[,/AS]J
MO]GW59YM"U^)TFL;Y%2[TR\C.V>SN$4D++&W!P2K*5=2RNK'\%/^#VKQ]\/]
M;_; ^#WP]T2_MIO$6@^ +RXUZ.%@SP07-X#:I)C[I_<SN%/.UPV,,"?LS_@R
M^^&WQ*\'_P#!-?QGXU\66=S;:#XK^*EU=^%8[A2%N(X;*UMI[F//!1I8FBR/
MXK9AVH [[_@X._:?_P""D?\ P3'_ &<8/VP/V9/VP;6[TBY\;PZ5J'A#Q3\/
M]+G^R1723R1-;W,<2,5C:(1[90[,KAC)E3O^+?\ @C#_ ,%@O^"V?_!7_P#:
MAU[]FG3?VT?!/@!]#\ W7B8ZQ/\ !ZRU,3"&]L;7R/*$L.TG[:'W[CCR\;3N
MR/L3_@\._P"40#?]E2T3_P!%W5?FC_P94_\ *4WQ]_V;_JO_ *?-#H _63X[
M_LY?\'*7@SP7>Z]^S_\ \%'_ (/^.M6M83);Z#K'P?M]$>\P,^7'-YEQ&)">
M%\PHF<;G49(B_P"#=/\ ;[_;N_;C\!_&?3/^"@36T/C/X;?$*/P]+ID7AZ'3
MI=/=8"9X)8X@ 7612,GTXXKW+P'^VY;?%/\ X+%^,/V+/ WC9+W1_AS\$8-3
M\4V%LZ-'!KEUJ<>V-R!D21VGE$C. +G!&0<>M?!;]E3P9\#OCS\6_CKX4OB+
MCXNZSIFJZUIRVP2.WNK/3X[(R*0?F,B1([<#YMQY+$T ?FKJ_P"U1_P7L_:V
M_P""N/QS_9#_ &)OB[X%\(?"WX4ZS:07_BKQ;X+@NHM/6>TBECME(0R75P[&
M5@F0 JDLZY7=Y3_P6V_X*#?\%O\ _@C+I7PSU#6_V]O GQ!?XBR:LGE6OP4L
M]-&GFQ6S)^9IYO-#_:_1,>7WW<?LS\'/V>/AS\#/$/CWQ5X&MK@7WQ'\9R>)
M_$T]U(C-)>M:6MIA"JJ1&L5I$%4Y(.XYYK\1_P#@^6_Y '[,W_7YXO\ _0-&
MH ZW_@B=^W=_P6^_X+*>"_B%XNT?]O\ \"_#YO >HV%I]FN?@C9ZF+XW,<[A
MMRW$/E!?)QT;.[/&,'TOP-^U?_P7>_9;_P""R7P5_8F_;F^*_@CQ9\,?BE=Z
MH=*\5>%?!D%I#JT=KIUQ.\.[8)+:>.18"\>2-KKM9P2:\A_X,>/^2.?M"?\
M8S>'_P#TGO:_9WXN_LZ?#7XU^-_AY\1/&EI<?VM\,/%DGB'PM=6LBH4NI-/N
M["1)"5):)H;R0E 5RZ1MGY<$ _.G_@XA_:X_X*5?\$M_@5I/[6O[-'[6]E>:
M'K?Q!&AWOA#Q'\/M-G.G)<P75S T%PD:LT<8MC$1('=MZMOR&S\M_P#!![_@
MK[_P5\_X*[?M@ZK\!OB!^U?H/A3P[X;\%W'B'5[[1OAMILEW<!+FVMDMXC*A
M2,EKD.796 6(C;E@1]&_\'F?_*)KP_\ ]EJT?_TWZI7P#_P9.?\ *0_XH_\
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
MX(((((ZU\G?MJ_\ !57P'\#/B;H_['_[+^@)\6OV@?%-[';:7\._#UP)ET.
MNHFU+5Y4.VQMH4)<K(R._P H&U2TB 'UK7\&/PD_Y+QX8_[&ZR_]*DK^\ZOX
M@?V_?V7?B9_P3M_;_P#&GP/\<>')[.Z\)>,Y;OP_+<1E8]1TW[09;*[C)^]'
M+%L.1T.Y3AE8  _M^KX9_P"#E26.'_@B%\>GD; .C:4H)]3K5@!^IKZC_97_
M &I?@E^V;\"?#_[17[/OCFQU[PWXBL([BWN+.X5WMI"H+VTZ@YBGC)V/&V&5
M@017P]_P77^*WAO]L&T\)?\ !%?X"ZI#XE^(?Q:\::-/\0=.TJ03#PEX4L;Z
M"^N]0OV3(M\M#"$C?#2;B%!)0. ?HAX(@DM?!FD6TRD/'I=NK ]B(U!KXP\%
M?\K&WCS_ +,_T+_U)+ZON,  8 KX&\!>.O!]Y_P<M?$+PA;>)+-]3@_9%T6&
M:Q6X7S4D37IYF0KG.X17,#D==LJGH: /QU_X/!OV!?\ AGG]NW2?VP_!>B^3
MX:^,^FF35&ACQ'!K]FJ17 ..%\Z V\PSR[_:#S@FO0O^"6/_  4M\<_M7?\
M!('3?^"*G@[Q5<1_%GQA\1;;X=Z'=QL6FL_ ^H":]U+4#GETM;2#4;=@/N)+
M;?2OUT_X+Y_L##_@H?\ \$RO'OPH\/Z+]L\8>'+;_A*/ :I'ND;4[)'?R$'=
MIX&N+8=LS@GI7Y>?\&67[!1U+Q-\0_\ @HQXWT7,6F(?!W@1YX^#<.(Y]1N%
MST*QFVA5QU$TZ]C0!]L_\'.7P[\'_"'_ ((!^*_A1\/=%CT[0/#$GA/2M$T^
M$?);6EOJ5G##&/9411^%?D)_P9]_\IAK7_LF>N?^V]?LA_P=B7UG:?\ !$WX
MAV]S<HCW7B/P[%;JS8,CC5;=RH]3M1C]%-?C7_P:!7EK:_\ !8K3X+B=4>X^
M'&NQP*QP78+"^!ZG:K'Z T ?U97?_'K+_P!<V_E7\'/[.G_)P?@3_L<M+_\
M2N*O[RJ_A]_;4_9F^)?_  3=_;Z\4_!'QWX:N+2\\"^-3<Z*UQ&534=/2X\V
MSNHR1\T<L(C8$=,E3AE( !_<%7P=_P '-DB1?\$-_CNTC8!L="4?4^(-- _4
MU]9_LQ?M.?!/]L/X(:!^T+^SYX\L?$/ACQ%8QW%G>64ZNT+,H+03*"3%/&3M
M>)L,C @@$5\,_P#!<;XJ^&_VRM2\#?\ !%WX":G#XF\>?$SQWHVH?$NPTJ03
M)X2\)Z?>PWUU>W[)D6[%X8!'&^&DS@<M&' /T;T6&2WT:TMY5PT=M&K ]B%
MK^6G_@\A_P"4N6G_ /9(=&_]*K^OZGZ_E;_X/&;ZTN_^"N]O;VUPCO:_";18
MKA5;)C<SWKA3Z':ZGZ,* /UV_P"#2?\ Y0M^#O\ L</$'_I<]?I=7YB?\&BG
MB'1=8_X(U^']*TS4X)[G2?'.NV^HP1RAFMY6N1,JN!RI,<J, >S ]Z^]OVI/
MVL/V>_V+_@[JOQW_ &EOBCI?A7PWI-N\DEUJ%RJR7+JI(@MX\[[B9NBQ("S$
M@ 4 =IIWC#PEK'B+4O"&D^*-.NM6T98&UC2[:^C>XL5F5FA,T:DM$)%5BNX#
M<%)&<&OES_@M=^VAJW[%?[!NOZ[\/M=M;'X@^/KZV\$?#)[N]2W5-:U-C!'<
M&1R%C%O%YUR7;Y1Y SP:\3_X-Q_VDO$_[=_@+]HK_@H!XNTV6QE^)GQ^NHM&
MT^=PS6>CV&DZ=!8P$C@F.)]C$<%U=L?-6%9ZU^SW_P %D?\ @MKXL^&/CG1_
M#7C[X2?LD>"VL#X8URP@U#3=:\7ZM(T-S<R03*T5Q':0VTEN ZG9<(74C()
M-GXT_LK?\$W?%W_!%>X_X)1^$_VMOA,RZ7\/X[3P[J\WCO34W>(H#]JCU%SY
MV4,U^&DDQC*SR+T-?S4_\$T/VRO%?_!-[]OOP!^T]:+.(O"?B,0>*=/@<$W>
MERYM[^WP#M9C \FS.0)%1OX17]??_#IW_@EE_P!(T_V?_P#PS>A__(M?S:_\
M'3W_  3D\#?L'?\ !06T\9_!'P+I7AOX??%3P^FK:'H6A6$=I9:9?6VVWO;6
M"&,!8TSY$X"@*#=E0 %Q0!_5UX6\3^'O&_AC3O&GA+5X-0TK5["&]TR_M7W1
M7-O*@DCE0]U9&5@?0U?K\H_^#2C_ (**V/[57[ 2_LH^-_$:R^-_@FZZ;%!/
M+F:[\/R$M8S*#U6']Y:D 8188,G,@S^KE 'X+_\ !\A_R(O[-W_86\4_^BM+
MJ;_@QR_Y)M^T9_V'/#/_ *)U*JG_  ?)7UFOA3]FS3#<)]H;4?%<JQ;OFV"/
M206QZ9(%3?\ !CA>VK^ OVC].6X4SQZOX7D>+=\P1HM3 ;'H2K#\* /WGK\N
M?^#O[_E#KJ'_ &4C0_\ T*:OU&K\L_\ @\&OK2T_X(]W,%S<(CW/Q-T.*W5F
MP9' N'*CU.U&/T4T ?F'_P &7/\ RE8\8?\ 9"=6_P#3MH]?U$5_+G_P9@7M
MK:_\%7?%4%Q<(CW/P.U>.!6;!=QJFD/M'J=JL?H#7]1E 'XM_P#!Y;^P)_PM
MS]E;PI^WOX)T7S-;^%U\-)\5R0Q_-+H5[*%BD8]2(+QD '0"]E8]*^/?^#0?
M_@I?X5_9?^-/Q&_9*^.'C6'2?!?BWPY=>+-*O;Z;;#8:CI=L\UX?826$<DC'
MG_CPC ZU_1Q\?/@GX#_:2^"/BW]G_P"*&F"\\.^,_#MWHVL08&XP7$31,RD_
M==0VY6ZJP!'(K^07]CS_ ()'?%SXJ?\ !9>U_P""8/CRVNH9?#GCB[L_'VH6
M@:(+H5FS/=7*,.52XM@!$QX8W40_BH _I0_X(M>!O%7Q'^'_ (]_X*:?%W1)
MK/QA^TWXG'B/3[.\7]]I/A*W0V_A^P/;BS'V@D<,;O)&:^V*JZ'HFC^&=%L_
M#?A[3(++3]/M8[:QL[:,)'!#&H5(T4<*JJ  !T JU0!_+#_P>2?\I<--_P"R
M/Z-_Z5ZA7L__  2\_P""'WB3_@IK_P $+H-?\$_MP?%SPSKESK6N#1_AW-XN
M9_!%S<V]TWE";30@*-(RC=.'8JS%]CXVUXG_ ,'C=]:7?_!7:UM[:X1WM?A+
MHL5PJMDQN;B^<*?0[74_1A7ZS_\ !HGX@T75_P#@C9H&EZ;J<$]SI7CK7;?4
M8(I0S6\C7 F57 Y4F.1& /9@>] 'I'_!LGX:U[P9_P $4/A%X/\ %6E36.J:
M3J7BNSU*RN%Q);W$7BC5DDC8=F5E(/N*^]*^<?V@?VJ/V#/^"0O[/NK>)_BY
M\1],\(Z(=7UKQ!:>'CJ FU+5]1U'4+G4KJ.RMF?S)FDN[J8A5Q'&'Y,<:97R
M;_@@!\>/&W[8G[(_C;]NSQ_I7V&]^-7QEUWQ!9V'F;Q9:?;);:19VH? WB*#
M3(X]V!N9&; +&@#[GHHHH _+[_@[U_Y0WZO_ -E"T+_T;)7Y;_\ !EW_ ,I6
MO%W_ &0O5O\ T[:/7ZA?\'?U_9V?_!'74+>YN$1[KXD:'%;JS8,CAIG*CU.U
M&/T4U^7'_!F'>VMK_P %7_%$%Q<(CW/P0U>.!6;!=QJ>DOM'J=JL?H#0!_4=
M7\V__![GX&U^P_; ^"_Q+N()!I>K?#6[TRTE(^5KBTU"268 ^H6]@S]17])%
M?#W_  7W_P""4[?\%6OV(+GX>>!3:P?$CP9>MKGP\N[IPB3W(C*36$CGA([B
M/Y=Q("RI"[':A! /@'_@QTUJPG^%W[1/AZ.1?M5MK_ANYE7N(Y8-05#^<+U^
M[]?RO_\ !LC^V')_P3 _X*C>(_V8?VO+2Z\"6?Q"L1X7UZ'Q+$;,Z-KMO-YE
MD;GS,>6K%IX,G@&Z1B0H)K^J $$9!H _#'_@^"U>R@^ 'P#T"1U%S<^,-:N(
ME[E(K6W5S^<J?F*^>/\ @R3\!Z_J'[<?Q>^)UM!(=*TCX4)I=Y*!\JW%YJ=K
M+""?4K8SD?[IKB/^#I#]LI/^"E/_  4K\'_LA_LE6]SXZM_AK:R^'],A\-Q&
M\;5?$-[,C7L=L(\^:$$-K 2/XX)>2H!K]I/^#?W_ ()12_\ !*7]B2'P3\0%
MM9OB7XWO$UOXAW-K()$MIO+VP:>CKPZ6\98%@2&EEF9259: /NBOY:?^#S#_
M )2SZ%_V1?1__2_4Z_J6K^63_@\HOK.[_P""MNE6]M<H[VOP=T:*X56R8W-Y
MJ+A3Z':ZGZ,* /UG_P"#1W_E#%X6_P"QVU__ -*S7Z:5^8W_  :+7MK=?\$9
M_#L%O.KO;>.M>CG56R4<W(?!]#M=3]"*_3F@#S']L_\ :D\!_L3_ +*GCW]J
MSXDR+_9/@?PY<:E);F0(UY,HVV]JA/ >:=HH5_VI%KXN_P""8VB_L:Z#_P $
MV]7\ ?M@_M/?"_4_&W[0Z:MXJ^.D=SXZTY))[_78R9[1@9B8_(MGBM@H)"M"
MQ7&:J_\ !2GXI?#']O3_ (*D_ S_ ((U3:SI^I^'-&OG^)7QQT>5DEBOK?3X
M3-IFBS1G*RK-,RSSPL/]3Y+8(-?57_#IW_@EE_TC3_9__P##-Z'_ /(M '\<
M'Q.\/>.O^"?7[<&IZ1\-OB-8WVN?"CX@^=X8\6Z)>1SV]VUG<B6TO8GC8JR2
M*L4@ /1MIYR*_M(_8:_:O\$_MR?LB_#_ /:Q^'Y1=/\ &_AN"_>U23=]BNL&
M.ZM6/=H;A)82?6,U^#?_  =\?\$J_@C^S+9?#+]LS]EGX+>%O OAK4IW\(^+
M=!\':!;:99"^VRW=E=""V1$\R2-+M'? .+>$'.:[K_@S"_X**V-NGC/_ ()H
M?$?Q$L<LTTGBKX:I<RX\P[574;*//<!8KE4';[4_8T ?JK_P7(_Y1!_M%?\
M9*]4_P#15?S#_P#!N5_RFO\ @%_V,UY_Z;+ROZ<O^"ZM_9Z=_P $??VB+B^N
M$B1OACJ$2L[8!=U"(OU+,H'J2*_F!_X-Z/$.B^&/^"S_ , -4\0:G!9V[>,)
M;99KB4(IEGL;F&),GC+22(@'<L!WH _LOK.\6>,/"7@+P_<>+/'7BG3M%TJT
MV?:M3U:^CMK>'>ZHN^20A5R[*HR>2P'4UHU^3?\ P67_ ."H?PB^+_[7O[/O
M_!(W]GGQ_8>(]8\7_'KPG<?%VXT6[6>#3-+M-6M[@:?(Z$J;AY(UE= <QK;@
M.!YHP ?K)1110!_*9_P>!?\ *8>\_P"R:Z'_ .UZ]D^ VF?\%D?V>_\ @W%^
M'G[:7["'[=.NV_@S1I]?E\1_"_3O ^D>;H6E+KFH1SWUO?&W>ZG"S(T\H=LQ
MI,[*52(BO%?^#OF_L[S_ (+&ZI;VUPCO:_#O0HKA5;)C<I*X4^AVNI^C"OVJ
M_P"#7:+0O$O_  0@^$/A[4+>VOK9F\46FI64\:R1NK^(=3+12(<@ADD&5(P0
MWH: /YZ/^"2^M_L=_M>_\%.-)7_@L'XB\5^,+'Q_?"!?$NJ>+I8DEUIV06_]
MIS_Z][>3'DY26/RRT98^6&V_V'^ /A_X'^%/@C2OAK\-/"6GZ#X?T*PCLM&T
M;2;18+:RMXU"I%'&@"HH    K^2;_@XD_P""/&I_\$M?VM'\3?"_1)S\'?B)
M<S7W@:Z4,R:3/G=/I$C'D-$6#1%N7A9>6:.0C]E?^#7[_@M!%^WM^STO[(W[
M07BX2_%_X:Z8B6]W>SYF\3Z(F$BO,GF2XARD4W4MF*4EC(^T M_\'AW_ "B
M;_LJ6B?^B[JOQS_X-@?V14_;4_;L\<_""3]I+XK?"U8O@MJ-^?$7P?\ %_\
M8NIS[=5TF+[-+-Y<F^V;SM[18&YHHSGY<']AO^#Q:^M+7_@D-%;W%PB/<_%;
M18[=6;!D<0WCD#U.U&/T!K\S/^#+S7]%T;_@JUXNT[5-3@MY]6^!>K6NFQ2R
MA6N9AJVCSF- ?O,(H97P.=L;'H#0!]V?\$,O^":?Q%_X);?\%L_CS\"/&OCJ
M[\6Z;K7P@M?$'A;Q??(5N-6L;C5D4O/DM_I"31S1R<G<4#\!P*_9VN%\<>&?
M@9\//'LO[6/Q&U?3- O](\*2Z)>>)]9U9;2UM],>XCN625I&6)0)8U8.W(RP
MS@FOS]_9I_X*B_#3_@J?_P %R-/^%7[,VN?VQ\+?@#\,==UA_$\2D6^N^(+N
M>ST_S(<C+0PV\\Z1R8&\R3L,H49@#]/*_ W_ (/EO^0!^S-_U^>+_P#T#1J_
M?*OP(_X/EKZS_L[]F;3!<H;CS_%\IA##<$QHPW$=@3D#UP?2@#?_ .#'C_DC
MG[0G_8S>'_\ TGO:_=BOPB_X,=;VU?X4?M$:>MPAGC\0^'9'B#?,J-!?A6(]
M"48?@:_=V@#\E_\ @\S_ .436@?]EIT?_P!-^J5\ _\ !DY_RD/^*/\ V1>?
M_P!.VG5^M'_!S-^R#\0OVQ_^"2OC3PS\)_#]QJ_B+P;JECXLT[2+.(O->):,
MZW*1J.7<6LUPZH 2Q0* 2PK\//\ @TU_:_\ @[^R9_P5"N++XX^-+'P]I7Q$
M\ 7GAC3M5U2X6&VBU)KRSNK=996(6,.+:2)2Q +R(,\T ?U@U\"_$T>=_P '
M+'PO2/DP?LEZY)(!V4ZY$H/YU]W:YXAT#PQH5UXH\2ZY9Z?IEE;-<7NHWURD
M4%O"HW-(\CD*B@<EB0 *_/+]@+QM;_\ !0O_ (+#?%C_ (*6_"^"6[^$/@7X
M6V_PC^'7BIHBMMXHNQJ7]HZE>VA(_>0Q3*(!*/E<,I4GY@H!^@_C/_D3]6_[
M!D__ *+:OX6_V.]*U[7?VN/A9H?A7Q5)H6J7OQ'T.#3=;AM([A]/N'OX5CN%
MBE!CD,;$.$<%6VX(()K^Y[XA7UII?@'7-3U"X2&"WT>YEGED;"HBQ,2Q/8
MFOX;OV&;^TTO]MGX.ZGJ%PD4%M\4_#TL\KMA41=2MR6)[  $T ?IE_P<<?%3
M_@MY^Q;\3'_9L^/W[?GB_P ;?"3Q_I+2^'O$.F:%8:!%K,055O+"Z3388AOC
M9@'A+,CQ2QMC#E%]W_X,^/@3_P $NOB[IFI_$N]^'$E_^TI\/;M[B>7Q1J8N
M88+"5RL&HZ9;;52/;D0R.PDEBD"L)$$ZK7Z[?\%2_P#@G/\ "C_@J'^Q[XB_
M9@^):Q6E[<)]N\'^(S#ODT/5XU;R+I>Y7YFCD08WQ22*""0P_D=^$7Q._:\_
MX(H_\%$T\0II<N@?$7X5^)9++7]#NG;[-J5O]V:UD(_UMK<0L"KCJDD<J$$(
MP /[;*^)_P!G?_E/'^TI_P!D2\ _^C]6KWW]AG]M'X+?\% _V8/"_P"U3\!]
M9%SHGB2R#3V4DBFXTN\7 GL;A1]V:)\J>S#:ZY5E8_,O[-/Q+\#:E_P<+?M,
M_#ZQ\2VDNL0?!/P3YM@DP,B^1)=O+QU^5;ZU)]/.7UH XG_@XO\ ^"(.C_\
M!4#X#_\ "Z/@?H=M;_'#P'ISG0)5"Q_\))8+N=]*F<X&_)9X'8X61F0E5E9E
M_G4_X)9?\%)/CS_P2"_;+MOC!X;TR_:QBN3I'Q)\"7NZ#^U+%9<36\B.!Y5S
M$P+1N1F.1<$%6D1O[5J_![_@ZJ_X(3_\)CINK_\ !47]D;P=_P 3:R@-Q\8O
M#&FP<WL"#G6X44?ZQ%'^D #YD'G<%)6< ^X_^#<OXG^%?C=^QO\ $GXS^!)I
MY-#\7?M)^.=:T:2YA,<C6EUJ/GPET/*MLD7*]CQ7N/\ P5._X)N?#?\ X*I_
MLG7G[*WQ,\>ZUX9MGUJTU;3]:T,(\EO=6^\)OC?Y9HRLC@H2.2"""HKY$_X,
M_P#_ )0[V/\ V4G7/YP5^I% 'P_XI_X(.?LH^(_^"2=C_P $D8?$NNVWAK2]
MM[I_C ")]2CU@73W37[*5",6DDE0QX \ES&&7"N/8O\ @F5_P3\\ ?\ !,;]
MC_P]^R+\.?&VK>([/1KF[N[G6]954EN[FYF:65A&GRQ("V%0$X Y+,2Q]^HH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *^3
M_P!MG_@B%_P3'_X*!:Y/XV_:)_9@TJ7Q3<<S>+_#EQ+I6IS-P-TTMJR"Z8 8
M!G63 X&,"OK"B@#\V? __!KA^P1\/;(^'?#?[07[1,'AYL"3PM;_ !;DM]/=
M<DE#';P1L0<\_-V[<Y^P?V./^"?'[&O[ /@^X\%_LC_ /1?!\%\5.J7]LKW%
M_J)7.#<WD[///@DD!W(7<=H&37LM% !7@W[<W_!,S]B+_@H]X2M?"G[7OP)T
MWQ,^G*PT?6DDDM-3TW=R1!=P,DJ(3@F,L8V(!96P*]YHH _+SPA_P:2_\$T/
MA_KD^K^!/BU\=]%@NAMN],TGXCQVT$Z\_*YCM%E88)'+]#7VK^Q1_P $Y?V,
MO^">?A*]\)_LE_!#3O#)U5UDUS6'FEN]2U5QDAKF\N&>:4 LS!"VQ2S;57)K
MVZB@#(\>^"M-^(O@_4/!.L:IJ]E:ZC!Y4UUH&MW.FWD8R#F*YM7CFA;C[R.I
MQD9YKX[TS_@WG_X)?:+\93^T9I'P\^(-M\06O&NW\<P?&[Q2FL-<,NUI3>#4
M?.+E206+9(.#Q7VW10!F^#?"MAX'\*Z?X/TS4-3N[?3;1+>&YUG59[Z[E51@
M-+<7#O+,Y[N[,Q/))K ^!/P ^#W[,WP\3X4_ KP)9^&_#T>J7^HQZ78AO+6X
MO+N6[N'&XD_---(0,X4$*H"JH'8T4 ?+G[6__!'7]A[]NR_:X_:NT/Q[XQL_
M[3?4+?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
M Q/ASX#TKX8^"['P+HFKZW?VNGJZPW?B/7[K5+V0,[.?-NKN22:4@L0"[DA0
M%&  !X]^W3_P3$_8>_X*0^%K7PU^UY\"-.\2S::C+H^NQ2R6FIZ<"<E8;N!E
ME5"?F,18QL0"RG%>^44 ?EYX._X-)O\ @FC\/=;GU3P-\6_CQH]M=#%WI6E?
M$>.V@G7/W7,5HLK#!(Y?I7VO^Q7_ ,$[/V-O^">G@Z\\&?LE?!#3O"Z:I(LF
MMZJ99;K4=4D7)#7-W<,\TV"S$*6V*7;:JY->V44 8_C_ ,$:9\1_!]]X)UC5
M=8L;:_C5);KP_KESIMY& P;,5S:R1S1'*@$HP)!(/!(KXF^)O_!M5_P2%^-7
MCG4/B?\ &'X$>*_%7B35I1+JFO\ B+XN>)+V\NW"A0TDTU^SN0JJHR3@* .
M*^\:* /@7PO_ ,&R?_!''P1+)/X+_9X\2Z.\N/-?2_BSXCMR^,XR8[\9ZG\Z
MB\2?\&PW_!&3QC>C4O%W[-GB#5;D+@7&I?%7Q%.X'7&Y[XFOO^B@#Y[^$?\
MP2Z_8Z^ 7[)5_P#L1?!'PAXD\)?#W4]1EO;VQ\.>/]8L[UYI60R_Z?%=+=JK
MA%5D$H5DRI!4D'R;X*?\&\?_  2X_9L\8/\ $']GCX:>/? NNRP&";5_"/QJ
M\4:=<RQ$AC&\D&H*SH2 2I)!(&17V[10!'9VJ6-I%9122.L,:HKS2M([ #&6
M9B2Q]222>IKXU_:(_P""!'_!-/\ :V\3VWC/]IWP%X]\>ZG8P-!I]UXK^,WB
M:]-G$S;FCA$M^1$A;DJ@ )YQ7V=10!\2_L__ /!O)_P2N_96^)UA\9?V=/@[
MXM\&^)M./^CZOH'Q:\16TK)N5FADV7P$L3;0'B?*.!A@1Q7VK>VL=]9RV4LD
MJ+-$R,\,K1NH(QE64@J?0@@@\BI:* /BKX_?\&^__!,;]JOQ;#X[_:6^'7CS
MQ[K%M:BVM-1\6?&;Q-?RV\&2WE1F;4&\M-Q)VK@9).,DTOP!_P"#?C_@F/\
MLJ>+)O'7[-/PZ\>> M8NK;[-=ZAX3^,WB:PDN(<AO*D,.H+YB9 .ULC(!QD"
MOM2B@".SM4L;2*RBDD=88U17FE:1V &,LS$ECZDDD]37RM^U?_P1:_8,_;CU
M?^U?VKO#GC[QK''J<]_9:5J_Q@\1MI]A/*S%VMK1;X06PPQ4"-%"H HPH 'U
M;10!\(_"S_@VR_X)%_ WQW8?%'X+_ WQ9X2\2:6Y?3=?\-_%WQ)97EL2I5MD
MT-^KKE25(!Y!(.037VQX%\':=\/_  E8^#-)U/5KVVT^'RXKK7=9N-1NY!DG
M,MS<N\LK<_>=B<8&>*UJ* "O(_!_[$'[//@7]LOQC^WIX=\)-%\1O'/A+3_#
MNO:F74QM:6CLRLB[<K)(!;I(Q8AELK< *58MZY10 5C^/O!.F?$;PA?>"M8U
M76+&VOXU26ZT#7+G3;R,!@V8KFU>.:(Y4 E&!()'0D5L44 ?!WQ._P"#:S_@
MD-\:_'6H?$_XQ_ GQ7XK\2:M*)-3U_Q'\7?$E[>7;!0H,DTU^SOA551D\!0!
MP!4'A;_@V7_X(Z^!C,?!/[/?B?1S<@"X.E?%KQ);^:!T#>7?C=C)Z^M??%%
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
MOVKOV<TU_P 4VVE1Z=_;%CXCU#39)K>-F:-919SQ+*5WL [@L%PN<  ?5M%
M'R#^SW_P0T_X)]_LF:;J^C_LQZ'\2_ -IKRC^UK;PE\</%%A'<L"-LC+#J"C
MS %P)/OA20#@D'!\*?\ !O+_ ,$O/ GQ>;]H+P7\./'^E>/'NI+F3QII_P ;
M/%$.JR329\R1KI=1$K,^3N)8[LG.<U]N44 9_A/PW9^#O#&G^%-.OM0NH--L
MX[:&XU;4IKVZE5%"AI9YV:69R!DN[,S')))-7;BW@NX'M;J!)8I4*21R*&5U
M(P00>H([4^B@#RG]D']C#X#?L,?#S6/A-^SEX<FT;PWJWB[4/$*Z,9@T%A<7
MCJ\L-N H\N!2OR1G.P' .  /5J** "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
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
MC>;(Q521& #YJ_L"_P#BG_P>Q#4_#\;31?#?X=&ZUMHQD0QR>%C;@MZ#?JD
M^K"G?\&YOAR[^$'_  6Q_;V^#'BB(Q:J/%=S>VJRC#36BZW>LLP!YVNEW;N#
MZ.M?;W_!+#_@F]\1OV?/C'\7?^"@7[7,ND3_ !Q^.VMFZUC3M#N3<V?A/1U8
M&VT:"X95-PR*L(EE "L8(@H(CWOS7[4W[!GQR_9]_P""H6B?\%@?V(OAN/&5
M]K/AA_"OQS^%]EJ=M8WWB#3=L0AU"PENGCMVNX3;VNZ&62,2+:QJK*S,: /G
MG_@]-UV-/^":OPZ\%6JM+?ZO\<M/>VMXU+/(D6DZJ&V@<D[I8A_P*OU-_9J\
M!ZG\+/V<_ 'PQUI=MYX<\$Z5I=V,YQ+;V<43?JAKXG^*_P"QC\>_^"LG[<'P
ME^/7[5/P&U'X6_!'X$:A-K7AGP+XMU*PN==\8Z^[1-'<7<-A/<6]I90F"/:C
M3/))APR!9?D_0Z@ K)\=>#M+^(/A&_\ !>MW%W#::C 89Y+&Y:&95)!RCKRI
MXZBM:B@#PO\ X=[_  3_ .AM\=_^%E<_XU2_8.T.'7/@I>'4=1U"0V?BS4[2
M%I=1ED;RXIRJY9V))P/7\J^@:\+_ .">_P#R1/5O^Q[UG_TI- 'KG_"#Z1_S
M\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^
M!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\W
MO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6
MQ10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M
M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8
M_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"
M#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\
M"#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\
M_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?
M\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO
M_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _
M-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;
M5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!
M;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%%
M&/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_
MP@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__
M  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'
M_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I
M'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-
M[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\
M/S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@
M6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\
M@6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q1
M0!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4
M?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/
M_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z
M1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#
MZ1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/
MS>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_
M #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\
MX%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_
M (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L
M44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6
MU'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!
MC_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@
M^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P
M@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_
MS\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1
M_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_
M .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[
M_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U
M;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X
M%M1_P@^D?\_-[_X%M6Q10 D:"*-8U)PJ@#)YI:** "BBB@ HHHH **** "BB
MB@ HHHH **** &7%O;W=N]I=P)+%*A26*10RNI&""#P01VJOH&@:%X5T*R\+
M^%]%M--TS3;2.UT[3K"V6&"U@C4)'%'&@"HBJ JJH    &!5NB@ HHHH ***
M* "BBB@ HHHH **** "O"_\ @GO_ ,D3U;_L>]9_]*37NE>%_P#!/?\ Y(GJ
MW_8]ZS_Z4F@#W2BBB@ 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@ KPO\ X)[_ /)$]6_['O6?_2DU[I7A?_!/?_DB>K?]CWK/
M_I2: /=**** "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 **** "O"_^">__)$]6_['O6?_ $I->Z5X7_P3W_Y(GJW_ &/>L_\ I2:
M/=**** "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** "O"_^">__ "1/5O\ L>]9_P#2DU[I7A?_  3W_P"2)ZM_V/>L_P#I2: /
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* "O"_\ @GO_ ,D3U;_L>]9_]*37NE>%_P#!/?\ Y(GJW_8]ZS_Z4F@#W2BB
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@ HH)"@LQP!U)JE;>)?#EYJ/]D6
MFOV4MWM+?98[I&DVCJ=H.<"@"[1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %>%_\$]_^2)ZM_V/
M>L_^E)KW2O"_^">__)$]6_['O6?_ $I- 'NE%%% !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 %%%-GFAMH7N+B54CC4L[N<!0!
MDDGL*4I1A%RD[) DV[(=17(ZE\<_ACIN5/B,3L/X;:!WS^.,?K6!J7[4'A6#
M(TKP_?7!'0S%(P?R+']*_.,U\7_#')K_ %G-J-UNH351_=3YW^!ZU'(LXQ'P
M4)?-6_.QZ;17D>E?M1Q2ZH$UKPMY-FW!>WN-[I[X( 8?E_2G?'/]L/X6_!SP
MA'K-KJ,>L:G>QDZ9I-M)AW(XW2G&8D!ZY&3V!YQU\'^)W W'DYT\EQD:DX;P
M:E"=OYE":C)Q\TFEL[,C'9/F.6I/$4VD^NZ^]75SU@RQ+*L#2J'9250MR0,9
M('MD?F*=7YA^(/VE_C3XD^*,/QFNO%<\6JV4W^@F $06J'/[A4Y&P@$%3G=S
MNR<FONK]F#]I_P +?M%>%O,C\NRU^RC']K:3OZ=O-CSRT9/XJ3@]B?O3S#U*
MBBL+XD_$3PO\*?!=]X\\87P@L;"+<^,;Y6Z+&@[LQP /4]AS0!RG[3/[1OAW
M]G/P0NNWL"7NJWKF/2=+\W:9V&-SL>2J*#DG'4@=Z^7=:_X*>?&V\RFB^$/#
M=DIZ,]O/*X_$R@?^.UP.J:C\4?VW/C\J6\1^TW\FRVAR6@TNR4]2>RJ#DGJS
M-QRP%?<GP]_97^!7P]\/66BVWPVT:_N+2!4DU/4M+BFN)W_B=F=202<G X'0
M< 4 ?%VJ?MZ_M4:_)]FLO',=KYAP(M/T>WR?8%D9OR-53XV_;A\??\>6J?$6
M\5^HTZ&[1"/?R@!C]*_172]#T31(O)T71[6S3&-EK;K&/R4"K5 'YPC]E[]L
M7QX0VI>!?$%UNYSK&HK'^?GR"L)+#XL_LA_&;3-2U[2#8:QIICNUMS.KQW,#
M@ADWH2&5AO0X/!SW%?IW7A?[>7P!_P"%N_"QO%>@66_7?#:/<6X1?FN+;&98
MO<X&]1ZJ0/O&@#USP!XXT'XE>#--\=^&+GS;'4[59H">JYZHWHRL"I'8@UL5
M\5?\$WOC]_8'B&?X&>);W%IJCM<:&\C<17('SQ<] ZC(']Y3W>OM6@ HHHH
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
M\OV2X5@SQ*>Q1\,OHK*.QK[/_9L^-6G_ !Y^%&G^-H61+Y5^SZQ;(?\ 4W2
M;QCLK9#K_LL.^:3]I7X*6'QY^$]_X*E5$OT'VG1[E_\ EC=(#MY[*P)1O9B>
MH%?&/[&/QLO_ -GSXTR>$O&;O9Z5JUQ_9^M0W'R_8[A6*I*P/3:^5;T5F/85
M^H'CGZ&44B.DB"2-PRL,JRG((]:6@ HHJCXD\3>'O!^BS^(_%.M6VGV%JFZ>
M[NY0B(/J>_8#J3P* +U%<U\*OBUX(^-'A=O&'@'4FNK%;R6V9Y(BC!T/.5/(
MR"K#.#M89 Z5TM !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 RZNK:RMI+V]N$AAA0O+
M+*X544#)8D\  <YJKX;\2>'?&/AVP\7>$=>LM5TG5;**\TO5--NDGM[RWE0/
M'-%(A*R1NC*RNI(8$$$@U^6=Q^TGXT_X*C?\%//VE_V./%OQS\6^"?AA^SQX
M3\G3_ W@7Q+/HE[XPU%E9+J]OKRT9+IK6&0>6+>*1(V$L+/G+!D_9P_99_:$
M_9I_8Z_8X_:O_8W_ &J_B98:3K4?PNL?B[\,?$7BBX\0:'J6CZPVF6EW+96^
MHF=M-D1[M6Q;-'&D6[:J!!0!^K5%?+/_  49C_;2^-6J^%?V,_V(OB8/AMJ'
MB^TO-3\??%YM--U+X6T2W:&+RK.,E5>_NY9PL1W+LCM[AP58(P_+_P#X*.?\
M$Z_^"I?_  1;^%[_ /!2#]C_ /X*N_%;XD67A/4+:;XA>&/B)JMQ=I<02S)#
M]H>&2>2&[B\QT1T9!)&K&19/E)4 _>:BO /V9?V^OA]\:/\ @FYX:_X*,^/[
M8>&_#]Y\-#XL\3P;BZZ:L%N\EZB$\NJ-%*%/!8!> 3BOCK_@EQX<\?\ _!;G
MX3^)O^"B/[:'Q&^(&E^&?%'BG4-.^#'PV\#_ !%U7P_8>&=(LY3 +QFTNXMW
MO+]YUF5IIBX'D_(JJVQ0#]1**_.__@DY^W?\8+']M7XW?\$<_P!KKX@7?BOQ
MQ\&;H:CX"\<:MM%_XE\+3""2 WI4!9+R&*[L]TH&91,2PW1L[X'Q^_:S^)O_
M  4._P""QI_X)$_ _P"*NO\ @[X9_"WPH_B7X\^(O!NK2Z?JNN3?Z.(=$M[Z
M$B6TA#7=MYS0LDKYG0,GEY(!^E]%?ES^V/\ &W7/^"#?[8'P6\7^&?B/XKU3
M]FGXQ:U)X4\=^$_&OBZ^UM?!^J#RVMM5L+O4)IKB&-D>1IK?S#&4MY"J!V0I
M^HU !1110 5X7_P3W_Y(GJW_ &/>L_\ I2:]TKPO_@GO_P D3U;_ +'O6?\
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
M"VF$DBSTZ&>*YU35;C'*6MO;1D._9IX\!NE?0?[<7[=_P(_X)\? \?%_X_\
MBJSAGO+B/3O#>AB_@MKC7M4DP([6 SND: L<O+(RQ0INDD=44FOGG]DG]I']
M@CP/XMUS]K_]JW_@HU^S]J_QG\9Z<EMJ]W9?%S2'T_PEHZ,9(= TQGN 5MHF
M.^68A7NI]TSA1Y<<8!QG_!:?X0Z3^PW_ ,&V'C_]GOX174QT_P %?#OP[X7M
MKHC;)<V[:IIUG<3. ?O2I)*[XXS(W:O2?^#<70K+P[_P1.^ 5A8(JI)X;OKI
M@O\ ?GU2\F<_7=(U='^T+<?!?_@M-_P36^-/PF_9L\5QZWHGB33]3\.>&/%F
MT+INJ:K:QQRPW-M+D^=:QWRI"9< ,]O-LW*%=O(_^#77XKS^*/\ @E'H'P$\
M6V4VG>,_@QXKUOP=XST*^3R[K3[J._FN8XY8S\R8BN43G@M$XZJ0 #Y6\5:K
M>>&_^#VCPU9Z [(FO_#Z2#6PAQYB+X3NY5#>OS6UO_WR*C_X-K[N]\>_\%FO
MV]OB?XE8OJK>,[R$M(?FC2;7]08QCT5?(C4#L% KO_\ @GW\(KW]M3_@Y;_:
M1_X*/:-#]I^'GPHMD\#^&M:C^:&]UR/3[6PN4AD^[*L:17K.5SC[3!V893]A
M7X67?_!.G_@YO^.OP?\ &,!L?#7[3?A2\\8?#G49!MBU&_%VM[=6B'IYD32:
MEE!R$CC; $BT 6/^#TZSL9O^"67@>\N$'G0_'?2Q;OW^;1]9W#Z$#/X"OTY_
M9(\0ZSXN_93^&7BOQ'*\FHZI\/=%N[^20Y9II+&%W)]]S&OS,_X.C? GB3]M
M[QC^S!_P2N^$LANO%7Q$^)TGB#4H;8;VTC2;2VDMI=1G4?<B1+RZ<,?O?9I
M,D8K]:/#/AW2/"'AS3_"?A^T$%AI=C%:64 /$<,:!$7\%4"@"[6?XK\5^'/
MWAR[\6^+=7AL--L(3+>7DYPD2=-QQVYK0J*^L+'5+233]3LHKBWE7;+!/&'1
MQZ%3P10!Y;_PW/\ LC_]%ZT'_O\ /_\ $UQO_!//QKX4F^!VISQ:Y R2>-M6
MDC8$_,CS[U/T*L#^->V?\*N^&?\ T3O0O_!1#_\ $UY#_P $]M-TY?@EJJKI
M\  \<ZP !$. +@@#IV  _"@#VG_A,?#'_0:@_P"^J/\ A,?#'_0:@_[ZJY_9
MVG_\^,/_ 'Z%']G:?_SXP_\ ?H4 4_\ A,?#'_0:@_[ZH_X3'PQ_T&H/^^JN
M?V=I_P#SXP_]^A1_9VG_ //C#_WZ% %/_A,?#'_0:@_[ZH_X3'PQ_P!!J#_O
MJKG]G:?_ ,^,/_?H4?V=I_\ SXP_]^A0!3_X3'PQ_P!!J#_OJC_A,?#'_0:@
M_P"^JN?V=I__ #XP_P#?H4?V=I__ #XP_P#?H4 4_P#A,?#'_0:@_P"^J/\
MA,?#'_0:@_[ZJY_9VG_\^,/_ 'Z%']G:?_SXP_\ ?H4 4_\ A,?#'_0:@_[Z
MH_X3'PQ_T&H/^^JN?V=I_P#SXP_]^A1_9VG_ //C#_WZ% %/_A,?#'_0:@_[
MZH_X3'PQ_P!!J#_OJKG]G:?_ ,^,/_?H4?V=I_\ SXP_]^A0!3_X3'PQ_P!!
MJ#_OJC_A,?#'_0:@_P"^JN?V=I__ #XP_P#?H4?V=I__ #XP_P#?H4 4_P#A
M,?#'_0:@_P"^J/\ A,?#'_0:@_[ZJY_9VG_\^,/_ 'Z%']G:?_SXP_\ ?H4
M4_\ A,?#'_0:@_[ZH_X3'PQ_T&H/^^JN?V=I_P#SXP_]^A1_9VG_ //C#_WZ
M% %/_A,?#'_0:@_[ZH_X3'PQ_P!!J#_OJKG]G:?_ ,^,/_?H4?V=I_\ SXP_
M]^A0!3_X3'PQ_P!!J#_OJC_A,?#'_0:@_P"^JN?V=I__ #XP_P#?H4?V=I__
M #XP_P#?H4 4_P#A,?#'_0:@_P"^J/\ A,?#'_0:@_[ZJY_9VG_\^,/_ 'Z%
M']G:?_SXP_\ ?H4 4_\ A,?#'_0:@_[ZH_X3'PQ_T&H/^^JN?V=I_P#SXP_]
M^A1_9VG_ //C#_WZ% %/_A,?#'_0:@_[ZH_X3'PQ_P!!J#_OJKG]G:?_ ,^,
M/_?H4?V=I_\ SXP_]^A0!3_X3'PQ_P!!J#_OJC_A,?#'_0:@_P"^JN?V=I__
M #XP_P#?H4?V=I__ #XP_P#?H4 4_P#A,?#'_0:@_P"^J/\ A,?#'_0:@_[Z
MJY_9VG_\^,/_ 'Z%']G:?_SXP_\ ?H4 4_\ A,?#'_0:@_[ZH_X3'PQ_T&H/
M^^JN?V=I_P#SXP_]^A1_9VG_ //C#_WZ% %/_A,?#'_0:@_[ZH_X3'PQ_P!!
MJ#_OJKG]G:?_ ,^,/_?H4?V=I_\ SXP_]^A0!3_X3'PQ_P!!J#_OJC_A,?#'
M_0:@_P"^JN?V=I__ #XP_P#?H4?V=I__ #XP_P#?H4 4_P#A,?#'_0:@_P"^
MJ/\ A,?#'_0:@_[ZJY_9VG_\^,/_ 'Z%']G:?_SXP_\ ?H4 4_\ A,?#'_0:
M@_[ZH_X3'PQ_T&H/^^JN?V=I_P#SXP_]^A1_9VG_ //C#_WZ% %/_A,?#'_0
M:@_[ZH_X3'PQ_P!!J#_OJKG]G:?_ ,^,/_?H4?V=I_\ SXP_]^A0!3_X3'PQ
M_P!!J#_OJC_A,?#'_0:@_P"^JN?V=I__ #XP_P#?H4?V=I__ #XP_P#?H4 4
M_P#A,?#'_0:@_P"^J/\ A,?#'_0:@_[ZJY_9VG_\^,/_ 'Z%']G:?_SXP_\
M?H4 4_\ A,?#'_0:@_[ZH_X3'PQ_T&H/^^JN?V=I_P#SXP_]^A1_9VG_ //C
M#_WZ% %/_A,?#'_0:@_[ZH_X3'PQ_P!!J#_OJKG]G:?_ ,^,/_?H4?V=I_\
MSXP_]^A0!3_X3'PQ_P!!J#_OJC_A,?#'_0:@_P"^JN?V=I__ #XP_P#?H4?V
M=I__ #XP_P#?H4 4_P#A,?#'_0:@_P"^J/\ A,?#'_0:@_[ZJY_9VG_\^,/_
M 'Z%']G:?_SXP_\ ?H4 4_\ A,?#'_0:@_[ZH_X3'PQ_T&H/^^JN?V=I_P#S
MXP_]^A1_9VG_ //C#_WZ% %/_A,?#'_0:@_[ZH_X3'PQ_P!!J#_OJKG]G:?_
M ,^,/_?H4?V=I_\ SXP_]^A0!3_X3'PQ_P!!J#_OJC_A,?#'_0:@_P"^JN?V
M=I__ #XP_P#?H4?V=I__ #XP_P#?H4 4_P#A,?#'_0:@_P"^J/\ A,?#'_0:
M@_[ZJY_9VG_\^,/_ 'Z%']G:?_SXP_\ ?H4 4_\ A,?#'_0:@_[ZH_X3'PQ_
MT&H/^^JN?V=I_P#SXP_]^A1_9VG_ //C#_WZ% %/_A,?#'_0:@_[ZH_X3'PQ
M_P!!J#_OJKG]G:?_ ,^,/_?H4?V=I_\ SXP_]^A0!3_X3'PQ_P!!J#_OJC_A
M,?#'_0:@_P"^JN?V=I__ #XP_P#?H4?V=I__ #XP_P#?H4 4_P#A,?#'_0:@
M_P"^J/\ A,?#'_0:@_[ZJY_9VG_\^,/_ 'Z%']G:?_SXP_\ ?H4 4_\ A,?#
M'_0:@_[ZH_X3'PQ_T&H/^^JN?V=I_P#SXP_]^A1_9VG_ //C#_WZ% %/_A,?
M#'_0:@_[ZH_X3'PQ_P!!J#_OJKG]G:?_ ,^,/_?H4?V=I_\ SXP_]^A0!3_X
M3'PQ_P!!J#_OJFR>-?"L4;2RZ[ JJ"68MP .]5_&GBKX?_#K0W\2>.-5T[2[
M%'"&XNRJ@L>BCNS'!X&3P:\A^)OQV\(?$+P_%8?#27SM/N&+3ZA]C:'S@#@*
M@=5;;D<G S@8R.OPWB)QUEGAWPM6S?&:M>[3A>SJ5'?EBOSD^D4WK:QZ.59;
M6S7&1H4_F^RZO_+S,OXG>.;[XG^+EBT\-]DB?R=/A)QD$\N?0MU]@ .U>N?#
MBT\$?#_PY'I5OK%L]PX#WMP.LLGY=!T ]/<FOCC7_P!K74OA1XGNK#P!X>TJ
M^O(4,,FH:G&TJPM_$(T5E&X="Q)[C'KS&H?M<?M3?$&Y.GZ7XJN<O]VUT/1X
MD8?0QQ[_ -:_*/ S@3,W.MQSQ(N;,<=[T>9:TZ4MK)_"YJR2^S348JUY(]OB
M/,J-HY=A-*5/1^;7YV_%W?8_0T^,?"X&3K<'_?59EY\9OA-I[F._^(^BP,IP
MRS:C&I'YFO@&+X(_MD?%8YU'PCXPOUDZ-KD\D2'\;EE&/TKH-,_X)R_M*W\2
MR76G:-9$CE+G5E)7Z^6&'ZU_2!\F?9MU^TK^S[9@FX^-'AH8ZJNL1,?R#9KS
M?X^?M\_"WP#X59?A;KEGXCURY#):I;L6M[;_ *:2MQD#LH.6]0.:\2L_^"87
MQVF(-YXN\*PCN!>7+,/P\@#]:Z+PC_P2X\1+K=K+XZ^)-@=.64&\ATN"0RN@
MZJK. %)Z9(.,YP>E 'D'PP^&'Q(_:S^)-QX@\5^)G2"6</K7B&_Y"#_GG&O
M9L<*BX51C.T8K[R^%7A?X0?!GPC!X+\!R6]M:Q?-+*S9EN9,<R2-CYF/Y 8
M   K?\)> /!G@3P]:^%?"?ARTLK"SCV0011#@=R2>68GDL<DDY)K2_L[3_\
MGQA_[]"@"G_PF/AC_H-0?]]5!?\ B#P1JMH]AJEY97,$@P\-P@=&'N",&M/^
MSM/_ .?&'_OT*/[.T_\ Y\8?^_0H S[7Q/X.L;:.RLM1M8884"10Q#:J*!@*
M !@ #C J3_A,?#'_ $&H/^^JN?V=I_\ SXP_]^A1_9VG_P#/C#_WZ% %/_A,
M?#'_ $&H/^^J/^$Q\,?]!J#_ +ZJY_9VG_\ /C#_ -^A1_9VG_\ /C#_ -^A
M0!3_ .$Q\,?]!J#_ +ZH_P"$Q\,?]!J#_OJKG]G:?_SXP_\ ?H4?V=I__/C#
M_P!^A0!3_P"$Q\,?]!J#_OJFR^+/"<\303ZM;NCJ5=&Y# ]0:O?V=I__ #XP
M_P#?H4?V=I__ #XP_P#?H4I1C)--73!-IGS7X\T1?!'C"4>'-2;[,S&2QN()
M"&5#GY<]<CD>XY[UT'P3\$Z!=WR^*O&%W"D$#YM+24_ZUQ_&P_NCL.Y]ASZ[
MXN^'7A?QI;V]MJ]BH%M<+*C0@*2.Z$C^$CK^'I6K%I6EP1+##IL"(BA4585
M '0#BOY<X>^C=E66>(]?-L4U/+X2]IAZ.Z4Y:M36W+3:7*M>=*/-I%J7V6*X
MLK5LIC0AI5:M*7DNWF^O;6VY5_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG
M_P#/C#_WZ%']G:?_ ,^,/_?H5_4A\:4_^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\
MOJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\ OJH-3\0^
M#]6TVXTN\U>!H;F%HI5SU5@0?YUI_P!G:?\ \^,/_?H4?V=I_P#SXP_]^A6=
M6E2KTI4JBO&2::>S3T:?J.,G&2:W1\Y_#G6C\/\ XFV[W5P/)CN6M;J0?=*,
M=N[Z X;\*^@/^$Q\,?\ 0:@_[ZKQC]H[PNFB^,8M:M( D.HP G:N )$PK?IL
M/XFO5OAIJFG^+?!&GZT]K"TK0!+@^6,^8ORL?Q(S^-?RUX U:O"'%F>\!XA_
MP*CK4;[NF[1;^<71E;^\V?9<316.P6&S*/VERR]?^'YD:/\ PF/AC_H-0?\
M?5'_  F/AC_H-0?]]5<_L[3_ /GQA_[]"C^SM/\ ^?&'_OT*_JD^,*?_  F/
MAC_H-0?]]4?\)CX8_P"@U!_WU5S^SM/_ .?&'_OT*/[.T_\ Y\8?^_0H ^;_
M /@HEX*\/_$/X3P>.-#O(9=3\-7!D94^]):R$+(/?:0C^P5O6N?_ .":OQOL
M8O#FK?![Q)J:QFQD^WZ096ZQ.0)4'IA]K>_F-Z5]4:MX:T'7-*N=$U328)K6
M\MW@N8FB&'C=2K*?J"17YQZ9+J_[(_[4@BU!'EC\/ZR8[@,O-U8OQNQTRT+A
MAZ$CTH _1C_A,?#'_0:@_P"^J/\ A,?#'_0:@_[ZJ>RCT34K*'4;"&VF@N(E
MDAEC12KHPR&![@@@U+_9VG_\^,/_ 'Z% %/_ (3'PQ_T&H/^^J/^$Q\,?]!J
M#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_T&H/^^J/^$Q\,?\
M0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ% %/\ X3'PQ_T&H/\
MOJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_ 'Z% %/_ (3'PQ_T
M&H/^^J/^$Q\,?]!J#_OJKG]G:?\ \^,/_?H4?V=I_P#SXP_]^A0!3_X3'PQ_
MT&H/^^J/^$Q\,?\ 0:@_[ZJY_9VG_P#/C#_WZ%']G:?_ ,^,/_?H4 4_^$Q\
M,?\ 0:@_[ZH_X3'PQ_T&H/\ OJKG]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ%
M%/\ X3'PQ_T&H/\ OJC_ (3'PQ_T&H/^^JN?V=I__/C#_P!^A1_9VG_\^,/_
M 'Z% $J.LB"1&RK#(([BEH  & , = ** "BBB@ HHHH **** "BBB@ HHHH
M**** /EKXZ?\$>OV(OB]\1/$?Q^\-?#S5O GQ,\1VEPFH^./AOXUU7PW=W\L
MJG<UW_9UQ%'=!FP7\U'+\YSDYK?\$_/^"2_[.?[&'A'P#XR\0^%CXK^+OACX
M?:9X>OO'_B+Q%J&M2VA@LXX)H=+.H2.-.M"P=4AMTA C8*5QQ7U=10!\X?MD
M_P#!)#_@GO\ \%!/'6F_$C]L+X 'QKJ^CZ9_9^E37?BS5K:*TM][2%8X+:[C
MB4LS$LX3<V%#$A5QX_\ \0R__!#G_HQ'3_\ PMM?_P#D^ON^B@#C/V>?V>?@
MS^RC\&M"_9\_9[\"6WAGP=X:MW@T31+6:61+9'E>5_GE9W<M)([EF8DEB2>:
M\N^,7_!+S]C_ .-'Q6UCXW:EX8\4>&/%'BBRCL_&6J_#KXA:QX9?Q-;(-JQ:
MBNEW4"W@"DJ'D!<*=H8#BOH2B@#D_@A\"O@[^S7\,=+^#'P$^&^D^$_"VBPF
M/3=$T6T6&"($EF; Y=V8EF=B6=B68DDFN=_:A_8X_9T_;(\,Z9X9_:!^'PU5
MM U-=2\-:Q8ZC<:?JFAWRXVW5E?6DD=Q:2C ^:*1<X ;(XKTZB@#QW]G+]@W
M]F?]ESQ?K/Q.^&_A'4K_ ,:>(X$@U_Q[XR\2WVO:]?P(04MWO]1FFG6!<+B%
M&6,;5.W(S7L5%% !1110 5X7_P $]_\ DB>K?]CWK/\ Z4FO=*\+_P"">_\
MR1/5O^Q[UG_TI- 'NE%%% !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 5QWQM^.7@3X#>$'\5^-;
M_#/E;#3X2#/>2 ?<1?RRQX4'GJ <7]I']IOP3^SKX;^U:LRWNM7<9.EZ-%)A
MY3TWN?X(P>K=\$ $YQ\)WUW\6_VL/B)=>)O$-^T[( ;J[92+;3H"3MC1>@'4
M*@^9CDDGYFKEQN-PF6X.IBL5-0ITXN4I-V48I7;;[)%TZ<ZM10@KMZ)'0ZYX
MY^(?[8?Q._M[QK.T&B:>V8M/@<^3:QD\1+_>D;'S.>3C/ "J/H;X1_!M/B*9
M;2XEN+#2+6'RFFLB$<'&%2,D$*0.<XX&.F0:Y7X._"2,O9^ O"%L50'=<7#C
M)QQOE<]S_P#6 [5]5>%_#6E^$=#@T#2(=L,"XR?O.W=CZDFOY'R'#8SZ0GB%
M_;N-@UDN DXT82VK35G=KK?253M%0IZWDS[C$SI\+Y7]6IO_ &BHO>:^ROZT
M7G=]C@O!W['/[-W@EEFT_P"%UC>3J<FXU<M>,S>N)2R@_0"O1M.TO3-(MELM
M)TZ"UA7[L-O"J*/H% %3T5_86Q\(%%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 <1^T!X:_M[X?37D4>9M.D%PF!SM'
M#CZ;3G_@-<Q^R_XE_P"0CX2GD]+JW4GZ*_\ [)^M>M7=K!?6LME=1AXIHV21
M#_$I&"/RKYR\,W5Q\+OBO''=R%4LK]K>X8_Q1,2I;_OD[A^%?REXM_\ & ^+
M^1\9P]VC6?U>N^EOAYI=_<G=?]>D?:9'_P *>18C /64?>C_ )+YK_R8^D:*
M 01D&BOZM/BPHHHH *^0O^"G?PBRNC_&O2K7IC3=7*CZM"Y_\?4D_P"P*^O:
MYSXO?#K3OBS\--9^'FJ;0FJ631QR,,B*4?-')_P%PK?A0!Y3_P $]OB[_P +
M#^"*>$M1NM^H^%I!9N&/S-;$$P-]  T8_P"N5>\U^9Z:+^T]^R;K\FM0:7K7
MAN5L1RWB0"2UG .0I;#12#/8YZUZW\-_^"GWC33/+LOBEX&M-4B& U[I<AMY
ML?WBC;D<^PV"@#[5HKRWX4_MC_ /XO7EOH^@^+39:G<N$ATO5X3!*[GHJGE'
M8] %8FO4J "BBB@#G?BC\5/!7P<\*/XT\>ZH;6P2XC@W)&7=G=L *HY; RQ
MYVJQ[5J>&_$OA_QAHEOXD\+:Q;W]A=Q[[>[M90Z./8COV(Z@C!KX/_;Q^.MQ
M\8_BPGP\\*3/<:3X?G:UMT@^;[7>D[9' 'WL'$:]>C$?>KF/A]\5?CW^QKX[
MET.\T^YLQO#:CX>U,$P7*GC>N"0"0.)$/;^(9% 'Z2T5YW\ _P!IGX:_M!Z-
M]H\+W_V;4X8PU]HEVX$\'J1_ST3/\:^HR%)Q7HE !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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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 %%%>:?M'_ +3O@;]G
M?PX;C595OM:N8R=,T6*4"24]-[G_ )9Q@]6/7! !/0 V_C3\;_ ?P(\(OXK\
M;ZCMW96QL8B#/>2 ?<C7\LL>%!Y/2O@?XA?$KXQ_MF_%&WL(K5GW2%=*TB&7
M;;6$1(!=F. .VZ1L9X' VJ&7T/Q;_:H\:2^//'&J,L#MM%PZ$0P1@\101YZ#
M^>2Q))S[5\)_@\MI&/"WP^T)Y';#7,YQN?'\<CG '4XZ 9( YK\.\1/''(^#
ML='*,LI/'9C)J*HTW?E;Z3DE*TNT(J4NZBFF?195P[B,?3=>M+V=)?:?7T6F
MGGMZGO?[,GP \._L_?#N+P]ITL-WJ5WMFUG4XQ_Q\38^ZIZ^6N2%'U.,L:]&
MKYSD^#/Q;T=_-M_#\X(Z/:W:$_\ CK9II/QP\/ LQ\20(O4GSB@_F*^+_P")
MC,_R_P#Y''"^*H6W?O/_ -+I4_S^9Z'^JN&J_P #&0E]WZ29]'45XM\,_P!H
M6^LIETCQ].UQ [?N[\+\\7^^!]Y??J/?M[+:7=K?VT=[97"30RJ&CEC8%6![
M@CK7[-X?^)7"WB1EKQ64U??C\=.5E4@_[T4WH^DDW%[7NFEX&9Y1C<IK<E=:
M/9K9^G^6Y)398HYHVAFC5T=2&5AD$'J"*=17WYYAQ^F_!#X+^$/&#?%'1_ &
MEZ;JL-M*KWUI!Y05&'SML7";B <MC=@D9Y.?'96O_C!\4L*6 U"\POK% O\
M@@_/ZUZE^T1XO_L'P:-"MI<7&J,8S@\B(8+G\>%^C&L7]F3PAY5O=^-;N+F0
MFWLR1_",%V'XX'X&OY/\6YS\2O%3*^ Z#OAZ#5?$V[6O9]FJ>B?>LNQ]KD:6
M4Y-6S*7Q2]V']>O_ *2>K6EK;V-K%96D02*&-4B0=%4# 'Y5)117]70A"G!0
M@K):)+9)=$?%MMN["BBBJ$%%%% !1110 4444 %%%>'?M _\%%?V3_V<+MM%
M\:?$>/4=720)+HGAU!>7,)S@^9M(2(CJ5=E;'0&O0RW*LSSG$K#X&C*K-](I
MR?KILO-Z'G9GFV5Y+AGB,?6C2@NLY**]%?=^2U/<:*R? OCKPA\3/"&G^/?
M7B"VU31]4MEGL+^U?<DJ']00<@J<%2"" 016M7%4IU*-1TZB:DG9IZ--;IKH
MT=U*K3K4XU*<DXR2::U33V:?5,****@L*X;]H3]HKX6?LQ?#JY^)?Q7U];2S
MBREI:QX:XOIL96&%,C>Y_  9+$ $CG?VN_VR/A1^QYX!/BKQW>?:M4NT9="\
M.VTH%QJ$@].NR,$C=(1A>@W,54_E-JNK_M5?\%2/VBH[>*%M0OI<BVM8RT>G
M:#9;ADD\^7&.,L<O(V!\S$"OU+@'PXK<2QEF>93]A@*=W*H].9+=1;TMT<ME
MLKO0_*O$#Q*H\,2CEF60]OF%2RA36O*WLYI:WZJ.[W=EJ>LW_P#P7&_::3XA
M7^NZ-X-\,'P]/<?Z#H-_:2.]O". //C=&9SC)8@KDG"@8%>P?#3_ (+Q_#;4
M?+MOB[\#M9TIN ]UH%_%>H3_ 'MDHA*CV!8_6O;O@!_P3 _9:^#_ ,*%\ ^,
M?AWI'C+4KO;)K&NZYIR22RS 8Q#G)MXQD@*A![L6/-<O\2_^"+_[&OC?S+CP
MG8Z_X3G;)3^Q]6,L6[W2Y$IQ[*R^V*^PQ7$'@9F&(EA:F7U*<(^[&K"ZNEIS
M-*=]?[T9-[NST/C<)P]X\9=AXXJGF%.I.7O2I3L[-Z\J;ARZ?W91BME=:GI/
MP8_X*)?L@?'C5[/PSX%^+UJFL7\JQ6ND:M:RVD\DIZ1KYJA9&/8(S9/%>V5^
M-W[='_!.#X@?L2KIOQ#\,>,+CQ#X;GN0@UJ&R-M/IET#F-) KMC.,K*",L""
M%.W=]R?\$Q/V^K7]J?P&/AO\1M2C3Q]X?M1]J+D+_:]LN%%TH_OC@2*.Y##A
ML+\[QCX=Y3AL@AQ!PS7EB,&VU/F^*&MKOW8NU]&G%-:/5.Z^CX,\1\WQ/$$^
M'N**$</C$DX<OPSTO9>])7:U34FI:K1JS^K:***_'S]D"D1T=0Z,"#T(.0:^
M(?\ @J%_P4IB^"]C>?L]_ ?6U;Q?<Q&/7=9MGR-%C8<QH1_R\L#U_P"68.?O
M$;>;_P""+_[9TOB/3)_V3_B-K+27]DLMYX0NKF7+3P9+S6N3R60DR+U.TN.
M@%?HD?#/B-\&3XBE&T%9J%O>=/K4\DM++K&\M$E?\XEXG\-KC6'#D97F[ISN
MN55.E/SD];OI*T=6W;] Z***_.S]'"BBB@ HHHH **** "BBB@ KYS^)OAZ\
M^&?Q(-UI&8HS,MYIS <*-V=OX,",>F/6OHRN%^/_ (,_X2;P6VJVL6ZZTLF9
M,#EH_P"-?R ;_@-?AGT@>"JO%? L\7@T_K>"?MZ;7Q6CK4BGOK%<RMJY0BCZ
M/AC,%@LR4*GP5/=?;79_?IZ-G5>%?$-IXK\/6GB&Q/[NZA#[<_=;HR_@01^%
M:%>$_!7XPZ;X%L;C0?$BW#6LDHDMI(4#>6Q&&!&<X. >.^?6O5-'^+/PZUS
MLO%EJK'HERQA.?3YP,_A7H^&_C#PGQAPYA*F)QM*GC'%*I3E.,)<ZTDXQDTV
MI-<T;7T:6YEFV18W 8N:A3DZ=]&DVK=-?+8Z*BFQ313QB:"571AE61L@_C3J
M_88RC**<7=,\%IIA1113 **** "BBB@# ^*/PY\/_%GP%J?P^\30[K74K8QE
MP,M"_5)%_P!I6 8?3TKXY^%?_!-;XD:_XAN!\4=7AT72;2[>)6M'66XO55B-
M\8Y6-6 R&?GD?(:^Y:* .3^%'P/^&/P4T?\ LCX>>%X+,NH%Q>,-]Q<>\DA^
M9N><?='8"NLHHH **** "OF/]LW]BC5/BKXCM?B-\([*W35KR=(-;M991%'*
MIX%SD]"HX<#)8 $ D'=].44 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !7A?_!/?_DB>K?]CWK/_I2:]TKP
MO_@GO_R1/5O^Q[UG_P!*30![I1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4C,J*7=@ !DDG@"L/XB_$OP1\*/#,WBWQ]X@AT^RBX#2'+RMV1
M%'+L?0 GOT!KXM^,_P"U+\6OVJ-4G\"?#*RGT7POG;< R;9+A/6XD7HI_P">
M2YSSG?CCAS+,\OR; U,;CJL:5*"O*4FE%+S;_#N]%J:4:-7$5%3IQ;D]DCU3
M]I3]O[2_#,\OP_\ @*(]8UIV,4FKHGFV]N_3$0'^O?W^X./O<@>'>$_@QK?B
MK69/'WQGU2XU'4+N3S9+>XG+L[=C*W?_ '!P  .G%=9\)_@CI?A2:*UT2PDU
M'5Y_E-SY67)/4(/X%_R37TG\,OV?K#1/+UOQJD=U=C#1V7WHHC_M?WS^GUZU
M_*V;^)''/C'F-3(^ (2H8.+Y:N,DG'3KR/>%ULE^]EH_W:N?9T,IR[(:2Q&9
MOFJ?9IK7[^__ *3ZG#_"[X$ZOXMBAO+Z$Z;I*J!&1&%:11T$:] ,?Q'CTS7N
MOAOPOH7A'35TG0-/2"%>6V\LY_O,>I/UK0  & , = **_8_#?PBX6\-L-S86
M/M<5)>_7FO?E?=1WY(M_96KTYI2:N>#FV>8S-IVF^6"VBMEZ]W_2L%%%%?JA
MXQYQ\4_@/8>)O,UWPFD=KJ!RTEO]V.X/_LK>_0]_6O//!'Q(\7?";5I-&U"U
ME:V23%UIMQE2A[LN?NG]#^1KZ*KF_B%\,?#WQ"LME_'Y-Y&N+>]C7YT]C_>7
MV/X8K^<?$+P3Q,LU_P!:.!ZOU/,H7DXQM&G5?56^&,I=;KV<_MI7<CZO*^(8
M*C]3S&/M*3TOUC^K2^]=.P[3?BQ\/M2TB/61XHM($<<Q7,RI(I[J5)SGZ9]J
MS=3^/_PRT[*Q:Q+=,.JVULQ_5@!^M>=V_P"S1X\ENGBEOM.BB5R%E:9CO'J
M%/ZXK=TS]EFW7#:SXN=O5+:U"_\ CS$_RKP,-QU])?.*$:.$R&E1DE:4ZONZ
MK1R49U8V3>MDI^5SIGEO"-"3E/$RDNB6ORTB_P!#B/'_ (JN_BQX\CDTJWE"
M2F.VT^"7&X GO@D EB3_ /JKZ$\,Z#:>&- M/#]D/W=K J X^\>[?4G)_&N>
M\(_!+P1X-U.+6;".YGNH,^5+=3!MI((S@ #H3VKKZ^U\'/#?B+A?,,RS_B:<
M)YAC)ZN#NHP^)J]DE>7V5=*,(6?0\_/LVPN,I4L+A$U2IKKU>WY=?-A1117[
MP?-A17C?[9'[;7PM_8P\(6.O>.+6YU/4M6G:+2M"T]T$\X49>4ECA(URH+<\
MLH /./A[XE_\%V_C7K?F6WPI^$'A_0(FR%GU6YEU"91ZC;Y2 ^Q5A]:^\X:\
M->,.*\,L3@</^Y;:4Y248Z:.UWS.STNDU>Z/@>)O$W@WA/$RPN/Q'[Y)-PC%
MREJKJ]ERJZULY)V:>Q^HM17E[9:=;M=ZA=Q01+]Z6:0*H^I/%?BWJ'[6W_!1
M[]JB]DTKP[XZ\<ZP)&VO8>"]/DMXU!_A862+E<==Y/N:GLO^":/_  4.^)$Z
MZAJWP?U60MR;G7O$%K&RY]1-/O\ TS7WG_$%,+ER2SK.:&'EVNG_ .ERIO\
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
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !115?5=6TK0M/EU;6]3M[.U@7=-<
MW4RQQQCU9F( 'UH L5C^,O'7ASP+IW]H:]>A2P/DVZ<R2GT4?UZ#UKAO&7[3
M'AV"T:#P$IOYF'R7LD96!>O*YP7]C@*<@@FO!_'WQ-O9M8"WBWVNZ]>_\>NE
MV,337$WIA%!VK^&!V!Z5_.W'WCI3P69?ZN\'4?K^93?+[OO4Z;ZW:^)QZI-1
MCJYR5G$^IRSAQU*7UK'R]G16NNC?^5_O?1'NGAK]IO3KO5I;?Q1I'V.T=_\
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
M(]X*\R_:Y_::\)_LG?!'5/BQXD\N:YC7[/HFF,^&O[UP?+B'?;P68CHB,>2
M#Z1?WUEI=C-J>I7D5O;6T32W%Q,X5(D499F8\   DD] *_&K]NS]IWQC^WS^
MTQ9^$?AE9W5[H=G??V5X)TJ%2&NWD<*UR5/1I6"GG&U%0'!#$_HWAKP4^,<\
M_P!H]W"T??JRV5ND;]'*SUZ14GT/S?Q-XW7!N1?[/[V*K>Y2CN[]96ZJ-UIU
MDXKJ?H__ ,$_/VU-$_;'^$*ZMJ!M[3Q=HNR#Q/I</"AR#LN8P3GRI "0/X6#
M+S@$^]U^(WA[4_C]_P $P/VLHVU>R6/4](95O[6*5OLFM:=)@D*Y W1N!E6Q
ME'09 9"*_9'X,?&#P/\ 'KX9Z3\6/AUJ@NM*UBV$L). \3='BD ^ZZ,"K#L0
M>HP:[_$_@>APYC89EECY\#B?>IR6JBVK\E^UM8=XZ:N+9Y_A;QU7XDP4\LS1
M.&/PWNU(RT<DG;GMWOI-=)6>BDD=11117Y4?K $ C!%?.OQ5\+7?PT^( O=&
MS#!)*+O3I$Z(0<E1_NMV]"/6OHJN3^,O@<>-_!TL5K#NO;/,]G@<L0/F3_@0
MX^H%?BOCMP%4XWX*E4P:?US"/VU%KXFXZR@FM;R2TM]N,#Z#AO,UEV8)5/X<
M_=EV\G\OR;-?P3XJM/&GABT\0VF!Y\?[V,'_ %<@X9?P/Z8->6?M&_$+[=>+
MX#TJ?]S;L'U!E/#2=53Z+U/N1Z5SGPS^+%_\/-.U/3DA,JW,.ZT4]([C@!B/
M3'7UV@59^"W@2?Q_XN?6M:5I;.SD\Z[>3GSY2<A3ZY/)]A[U^"9]XNYOXL<(
M97PCDM_[0QON8IV:48P=I.Z^S42=25OAIIQ=^8^EPV1T,DQU;'8C^%3UAYM[
M?-;+N]>AZ)\!/A[_ ,(IX=_M_4H-M_J2!B&',4/55]B?O'\!VK1^+GPUM_B#
MH)^S(J:C:J6LY3QN]8V/H?T//KGK:*_J?!>&W"^%X"CPC.ESX7DY)7T<F]74
MOTFY^^FMI6MHD?&U,VQD\S>.4K3O?T\O2VGH?/?PD^(M]\-/$<FBZZLB6$TW
MEWL+@YMY <;\=B.A'<?05]!12Q3Q+/!(KHZAD=3D,#T(/<5Y?\?OA7_:MN_C
MGP_;9N84S?PH/]:@'^L'^T!U]0/;G.^ 7Q86U,?@3Q'<XC8XTVX=OND_\LB?
M0_P_EZ5^#>''$.:>#W%\N .):E\+4?-@Z[TC:3T@WLE)Z6^Q4NM8S37TF;86
MCGN!_M/"+WU_$CUTZ_+\5YH]CHHHK^MSX@***XCXM?&"P\!6ITO2V2XU:5/D
MB)RL /1G_HO?Z=?G^)^*,DX.R6KFF:U53HPZ]6^D8K>4GT2_)-G5@\'B,?B%
M1HQO)_U=]D6/BG\6-,^'EC]F@V7&IS)FWML\(/[[^@]NI_,CQSPYX0\;?&/7
M;K4?M'F.<M<WUR2$5L?*G ^@  X'M4_@'X>^)?BWK\NK:G=2BV\W=?:A)R6/
M]U<]6Q^"C\ ??]!T'2?#.E1:-HEFL%O"N%1>Y[DGN3W-?RQE>1<3_2-SF.<9
MXIX;)*3?L:*=I56M.:_7^]4V6L*>O-)?95L3@^%,/[##6GB)?%+I'R_R7S?1
M'SSIFM?$#X*^(GM'B>W;.9K2;YH;A?48X/LPY'YBO;/A[\5/#?Q"M0ME+]GO
M47,UC*WS#U*G^)?<?B!6GXJ\(>'_ !IIATKQ!8+,G)C<</$?[RMV/\^^:\/\
M:_!SQE\/]6BU#P\T]W;F=1:W=H")8W)PH8#E3GC(X/MG%:SRCQ)^CYBG6RKF
MS')&[RI/6I1N]U9/E_Q17LY:\\(MIB5?*>*(<M>U+$=^DO\ /T>JZ-GT'111
M7]A'P@4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 5X7_P3W_Y(GJW_ &/>L_\ I2:]TKPO_@GO_P D3U;_ +'O6?\
MTI- 'NE%%% !1110 4444 %%%% !1110 4444 %%%% !1165XM\:^'/!.GG4
M?$&H+$#GRHEYDE/HJ]_Y#N17'F&8X#*<%/&8VK&E2@KRE)J,4N[;T1I2I5:]
M14Z:;D]DMS5HKYV^)GQYUWQ-'*L-Y_9.E199E6;:64?Q2/Q]<# 'OUKF/#?Q
M[U9]H\.?%3[1_=C74EFQ_P !8G'Y5_-F-^E%PS2S"K' Y?B,1A:;LZ\(V5_*
M,K65MG*46]?=2U?UE/@[&2I1=2K&$W]E_P":_1/U/K"BOG_3?VC/B18X%U/9
MW@'7[1:@$_\ ?!6O0OA1\;(?'U_)H>KV,5G>A-]N(W)68#[P&>A'7'.1GTK[
M'A#Z07ASQEFE++L-5J4J]5VA&K#EO+I'FBY0N]DG+5V2NVD<&.X7S7 4959I
M2C'=IW_!V?X'?4445^W'SP4444 %%%% !1110 4444 %%%% !115/7O$.@^%
MM+EUSQ+K5KI]G ,S75[<+%&@]V8@"@"Y17SWXW_X*1? WPSXB@T7P]9ZEKMO
MYX6^U*SB$<42=V028:4CTPH(Z,:]N\$^.?"7Q&\-V_BWP3KL&HZ?=+F*XMVR
M,]U8'E6'=2 1W% &M112,RHI=V  &22>E#:2NP*'BCQ+I?A#0Y]?U>7;# N=
MJ_>=NRKZDFJG@[XA>%/'-OYV@ZDK2!<R6LORRQ_5?3W&1[UXE\=/BG%XNU:2
M"VO FCZ;N*.S860@?-*?;&<>W/<UY/X2^./@;6M<%KX=\22VUW%(/LTDRF R
M-ZQG/KTSACZ5_).<_2#XE?%F+J\/9<\;E6#M"M.*ES.3;O4C-72CHTKQDG&/
M,VE)-?;X?A?"?4H1Q57V=>IK%/\ )KO\_+H?<%%?,'C'X\_M!2^&5T_P)XHT
MRVO(E/\ I-YIPDDE'8;B2@/N4.>YKQ$?MC?M>_#3Q Y\3>+)9VD?<UKJNG1/
M#)C^X5487_<8"OW#@/Q5X+\1,.I95B/WJ5Y4IVC5CW]V_O)?S0<H^=]#YW,L
MES#*I?OH^[TDM4_GT]'9GZ&T5\A> _\ @J4AV6WQ.^&!'_/2\T*ZS^4,O_QR
MO8/#?[=/[,?B+3_MS?$5=/=0-]KJ5E+'(OY*5;_@)-?HQY1Z[17FFE_M>_ #
MQ \UOX8\:R:G-"FYH[32[G'TWM&$!/;+#-<!X_\ V@O%.KR2WEOK)T73HAP(
MIQ&0/[SR<<_D/YU^3^(?C)PCX=2CAL5)UL5*W+0I6E/79RUM%/I?WI?9B];>
MWE60X[-4YP7+!?:>WR[_ -79]"WE_8Z=";C4+V*",=7FD"C\S7-:S\:_AKHH
M99/$L5PXZ)9J9<_BHV_K7R-XA^/G@**X+7_BY]1N2< 6^^=G/H&Y!_.NK\!^
M"_C7\3]ESX:^%5SI=A)@KJ?BB?[(N/58E#R.".A  /J*_+_^(L^-O%&G#O#+
MI1>T\0Y)6[KF]A'[G)>I[']B</8/_>L9S/M'_@<S_(]3\4_M/7TZM;>#]"6
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
MJFF7:7%O=0N,I)'(A*NC @AE)!!XK(^+?QD^$GP#\"7OQ1^.'Q-T#PAX;TX
MWVN^)=6ALK2#)PH:69E4$G@#.2> ": .EHKS[]GS]K#]F;]J_0;SQ-^S3\>?
M"GCFRTZ<0ZE)X9UN&[:RD()5)T1BT+$ D*X4D#(KT&@ HHHH *\+_P"">_\
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
M%%%%9FH4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %?E)^W5_P2_^-6C_ +25YJG[,_POOM8\.>(R=1M$T[8D
M>ESLW[VW9F95C4/\Z<@;7"C[AK]6Z*^QX+XVS;@?,)XK!)2YX\LHROROJF[-
M.\7L[[-KJSXSC;@?*..LNAA<<Y1<)<T91MS+HTFTU:2W5MTGT/R!\%?\$7OV
MU_%.QM>TKPWX<5L%AK&O+(RCZ6JS<_C7KO@K_@@CJTFR?XB_M&6T./\ 66VB
M: TF?I++*N/^^#7Z0T5]=C_''C_&7]G5A27]RFO_ &_G9\AE_@3X>X*WM:4Z
MS_OU'_[9R+\#SO\ 9>_9F^'G[)_PHM?A3\.DFDACF>XOM1NPOGWUP_WI9"H
MS@*H & J*.V3Z)117Y5C<;B\QQ<\5B9N=2;;E)[MO=GZQ@L%A,MP=/"X6"A3
M@E&,5LDMD%17ME9ZE9RZ=J%K'/;W$31SP3(&21&&&5@>"""00:EHKF3:=T=+
M2:LS\2_$%MJ__!/O_@H*[V<<RV_@WQ>L]NH)W7&E2_,%SW+VLNT^Y/I7[6Z9
MJ5AK.FV^L:5=I/:W<"36T\9RLD; ,K ]P00:_.'_ (+L_ S['KGA+]HO2;/$
M=Y$VAZS(JX E3=-;,?4LIG7/I$HKZ,_X),?'/_A<W['FC:7J-YYFJ>#I6T.]
M#-\QBB :W;'IY#1IGN8VK]]\2$N+> LKXHAK4BO957UOJKOLN>,K?XT?S]X:
M-\(<?YKPK/2G)^VH]K:.R[ODE%/_ *]L^F:***_ 3^@@HHHH **** "BBB@"
MEX@T#2_$^D3Z'K-L);>=,.O<'LP/8@\@UYSX&_9RMM)U^;4?%=S'>6UO-_H5
MNHXE'4-(/_9>Y'/'7U.BOA^)/#G@[BW.<)FF:X6-6MAK\K>S6ZC-;3C%^]%2
MND[]&T_1PF:X_ X>=&C.T9[_ .:[/H(JJJA54  8  Z4M%%?<))(\X**** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH _%'X*_M,_#GQI_P<4_
MM5_#C]N.YL1XTTGP=_8?[.]OXG"F#3;*.W\Z2'3UE^6*YNHI(;D,F'D!G .&
MVGZ4^'?_  3D^&?[4W[ /[#O[0OACX<:3'\3OA;IGPF\1Z9XG@BBMKR72[==
M*.I6LL_#2P_8C<2")B<R1(%&3@[W_!;;_@AI^S1_P5!^'UQ\7KW4)O!/Q8\)
MZ+*^@^/M)M@[7$,*M*EI>Q97[1$#G8P99(BV58KN1O@__@CY_P %K_VK_P#@
MGO+\&_V%/^"M?P]N;+X=>/O!^BS? [XL>4GEVVE7-M ;&"XEC_=SVR1RP1L_
M$UJ2!,&0AHP#]VO%_A72_''AF]\):U<:A%:7\!AN)-*U:XL+D*>OEW%M)'-$
M?]I'5O>OQ=_X)8_ /X:_LR?\'9_[4_P:^$6C2Z?X?L/@F;RSM)KZ:Y:-[V3P
MK>S9EG=Y'S-<2'YF)YQT%?MI7X__ +&7_*Y%^UC_ -D!T_\ ])?!U 'Z7?MM
M_M-Z%^QE^R)\1OVJ/$5FMU;^!/"-[JT5D[[1>7$<1\BWSV\V8QQY[;Z^)_\
M@V:^&NH?$[]AC5O^"AOQ\D3Q+\4?VBO%FKZKXM\3:I LEQ+86]Y+86^GKN^Y
M:)]FE9(1A%64 #:J@=__ ,',%GK-]_P0]^/$&@JYG72]&D<1@Y\E-=TYYNG;
MRE?/MFM;_@W4^P_\.5?@#_9S Q_\(K<[MO\ ST_M&[W_ /C^Z@#YH_X)=?&B
M_P#V&/\ @N7^T%_P1I@NVC^&&L*?'7P@T@O^YT&>YM[>_N]/M$_Y96[+=3D1
MCY4-D2H!D<FG\*_BXG_!57_@Y2\9_#[Q\5U3X5?LB>';K_A$_#5P/,LYO%BS
MP6DVH3Q'*/-'+)=K&QSY?V.)E"L7->;^,8[W5_\ @]L\*-HH8II7@&0ZOL[(
M?"-X%W?\"FA_,4G_  ;.65WIW_!8']OJQ\3[AK,7CR[6X67[Y8:_JGFGGG[V
MS\Q0!ZS_ ,'$'Q(U?_@F1^TE^SS_ ,%>_@S:G3[^#QB? WQ8MK!0@\5Z#<1-
M=):W('$KQQVMV8G;)1VC;_EFH'ZP:3JNG:]I5KKFCWB7%I>VZ3VMQ$<K+&ZA
ME8'T((/XU^1G_!Z=>VD'_!+'P19S$&6?X[Z7Y*GK\NCZR2?RX_&OTU_8]T[5
M](_9(^%ND^(%<7]K\.=$AO1)]X3+80J^??<#0!Z-1163XZ\0ZIX4\(W_ (CT
M3PK=ZY=VD!D@TFQ91-=-D?(A;C/U]* -:OF3]CWXL^%OAO\  K5AJ<DES?2>
M-]9:WTVT ,L@^U, 3D@(O!^9B <$#)XKI_\ AK#XV?\ 1C_CO_P*MO\ XJOG
MW]GR#XN^+?AKJ.H>#_@KJNI30Z_J @A2X@@C+/=2NR/+*Z@%&;:V QP5(5N<
M?#^(.:\9Y1D"J<+X%8K%3G&"C*2C&"E=>TE=Q3C&7*G>44E+FE)1BSMP"RUU
M[XZHX4TF]$Y-VULDDW=J]K)MO1*[1Z/\2_&7B[XP3E/'6HB+25;=%X=L9&6U
MXY!F;AK@C_:PG'" \UY[H?QM^!OBKQW%\%/#WC+2[[6)AY4&DVR[XY6'_+%&
M"^6S\8\L$MGC&:P/'W["O[?O[03O8>/_ !UH7@_0)>#HNAR37#E?28A4\WZ;
M]N1]T5\W_MC?\$]OBK^QA;:3\0M+UR]UC1&E19-?@L#:2:?>ALH&59'* X!2
M3=]X$<';GQN#/HAOQ4Q'M?$OBU_VC5B_88?"6E3H3M=<U24/8R:V=.BH\S6E
M:3/@N,/&CB'A2B\1P]D+^I4FO:U:_NRG&]GRTU+VD5VG-.WVJ:/K/Q;^SWX"
MU::2.71)=*N@?F-I^[VGT,9&T?D*XR3X$_$[P7>?;_AQXYE0[LA[:[DM)@?J
MIP?KD5ZI_P $^?V[_#_[77@F/X5?&#P[;ZAX[T6S_>R.J ZK;K@?:8\X*R#C
MS%7N=PP&(7VW6O@;H-_,9M(\/ZQ8 ]8ED21!]-W/ZFOS[/?";Z2G@]F]3+LM
MS2..A3=O9U]W'[+BYM^Y;;EK1_PIZ+]*X?XQX%XYRBGF-*FX1FMX]'UC)+:2
M>C3B^Z;5F_F[PK\7_P!NWP3MBMO$SZK"G6'59K:YW?5Y")/_ !ZO2O"O[<'Q
M[T_;%\0?V?K>\'1Y]&U$0D>^QC)GZ;A79S?L^7S?\>\^H+_OV*-_*055F_9]
M\3JI^SO,YQP'M N?R<UYKXO^E)A%>MD.&FE_+*-_PQ3_ /23V/J/!L_AQ,UZ
MK_[0Y[4_^"FOA31;QM/U?X.:];3I]Z*>XC5A^!%5_P#AZ7X _P"B6:Q_X&15
M1^(GP;O4M/L?C_P69;;.$FEA)0$_W7'W3]"#7/>&_@/^S6W[GQ9X*U4$GB>Q
MUAP!]4;)_'/X5ZO#'TC,BK8W^R^+,-/+<6M&JBE[-OU:4H7W]^/*E]MF&,X5
MQ,:?ML%-5H>6_P#D_D[^1Q_Q@_;J^.7QFNV\,^"Q+H&GW+^7#I^C,SW5QG@*
MTH 8D],(%!S@@U5\%?L9>*I((O$7QKUG_A&K28>9'INT3:E<CVBSB('GYI""
M#_":]R\.W7PK^#UF]A\#/ ,.GW4BE9M?OSY]VP/4*SY*CV&!_LYYJYX>^&WC
MKQY/_;EW9WC03MNDOIE+-+[KN(W?7./>N;BOQ\JYCF3R#P_PSQ^,>GM$KT8=
M')/3F2_F;C36CYI+0O!<,JE1^LYG/V5/M]I_Y>FK\D<]X)\+_LZ>#[)=+E^
M&GZG&C'_ $O5+LSW#^[%U*Y]E"KZ 5WV@ZS^RA"5$GP(T2Q<?\M/^$:M' _X
M$!N_2NFM?A)X*ATU+"?X<:C-(H^:Z>\(D8^IVL!^&,5EZE\"-$N,MIND:Y;,
M>@:2*11^& ?UKS:.6?2LR>DJJQ>&Q5]7!J":;U<6_9TEIMI-KL[&LJW!==\O
MLYP\]?\ .7Y"^*/B7\)_"VC"7X4>&]*CU*4%8Y[;2%@^RC'+?<&3Z <>O3!Y
M[X3_  LU#XCZJVO:^\O]G)*6N)G8[[E\Y*@]?JW]>EVU^ &JQ:G$]VEY-:!P
M9D6W5'9?0'>0/3->K:=JESI%C%IFF>!KJ&W@0)%%&5 4#\:Y\G\.?$/Q0XMA
MFWB/2C1PV%LJ>&@TX3EHV[1G4]UNSFW)N>D%:*LKKYKE>3X%T,IDY3GO-[I?
M<M>VFF^YMVEI;6-M'965ND4,2!(XXUPJJ.@ J2L?_A)=7_Z%"]_[Z6C_ (27
M5_\ H4+W_OI:_K"$(4X*$%9+1):))=$?%-MN[-BBL?\ X275_P#H4+W_ +Z6
MC_A)=7_Z%"]_[Z6J$;%%8_\ PDNK_P#0H7O_ 'TM'_"2ZO\ ]"A>_P#?2T <
MO\=OAE_PEVC_ /"0Z/;YU*QC.54<SQ#DK[D<D?B.XKY;\4?"#P9XO\2P^)M:
MM':6./;+$C[4GQ]TOCDXZ<$9X!X%?9G_  DNK_\ 0H7O_?2UREK\/O#5MXGN
M/%,GPZO)I9Y?,2WE9##$W<JO3DY/.0,\8K^:_$SP9XAS?C"EQ#PABU@\163I
MXB2DXWBU;VBY5=R:7*TK7DH2334I'UN49_A:&!EA<=#VD8ZQ6^O;7IU]+KR/
M,?AM\"?$/B>TA73["/2M+1<1SO#M7;_TS08W?H/>H?B7^S/\5O J?\)QX0\3
MMXGMX5(U'P_'IZP2"+KYEOAF+N.248Y8<#G KWX>)-6 P/!]Y_WTM+_PDNK_
M /0H7O\ WTM>[PQ]'CP^R/*:V'QU+ZY6K1:J5JOQ:[NFO^7;OJI)N=]YLYL9
MQ3FF)KQG3E[.,7I%;?/OZ;>1\]_!_P"+LWA&ZCU?3)S=:7=X^TVX.,@<9 /W
M77D8..A!]OI'1-;TOQ'I<.LZ->+/;3KNCD7]0?0@\$=C7DWQ1^#[^);^;Q7X
M.\'W-CJ4[[[^W&T0WI_OD9^67_;Z-T;LR\'H/C[XA?#)[VU\-/%%<LKH]CJD
M+F)9<8#,H(92#CH1G&#VQ^8Y#G>>?1UXD609[.5;):\FZ%:S;I-N[32[?\O(
M+_KY!:RB_8Q.'PW%6$^M89*.(BO>C_-_71_)]&>V?&WX]?#SX">&3XA\<:IB
M60$6&FP$-<7;CLBYZ=,L<*,\GD _$WQ,\?\ QU_:_P#$"7VJ0MI?AR*;=8V.
M\K;0KTW]C/)C/S8QU V@XKLQ\.W\5^*W\9_$+4KGQ1K]TX_TB\3*)Z)%"/E5
M1V7G';%>I^&O@;XOU!HY]:T>ZM+;@[$C'FD>F"1M_'\J][-?'KB#C#&SRKPY
MRZ>)GL\14CRTX7^TD[)=TZLHZZ<DCFH\-87 TU6S6JH+^5/5_P!>2?JCA?@]
M\&UMQ#X-\$:=OD?#75U(.3ZR2-V ]/P KZ>^'WPS\/?#_3TBL;=)KPKBXOWC
M'F.3U /\*\?='ISD\U3\':99^!=..F^'_ =Z@<YFF>16DE/JQ_IP!Z5K_P#"
M2ZO_ -"A>_\ ?2U]EX4^#RX1Q$\^SZK]:S:M=SJ-N2I\VZ@VKW:TE.RT]V*4
M;\WGYUGKQT5AL,N2A'9;7]?T7S>NVQ16/_PDNK_]"A>_]]+1_P )+J__ $*%
M[_WTM?NI\X;%%8__  DNK_\ 0H7O_?2T?\)+J_\ T*%[_P!]+0!L45C_ /"2
MZO\ ]"A>_P#?2T?\)+J__0H7O_?2T <9\4/@#:^(K@ZYX.\JUNW?-Q;-\L4F
M3RPQ]UO7L?8]>U\%>$--\#^'8- TU<B,9FE(P99#]YC]?T  [4W_ (275_\
MH4+W_OI:/^$EU?\ Z%"]_P"^EKX?)?#C@[A[B;$Y]E^%C3Q%=6DU\*UO)QCM
M%S=N>V_*G9-ROZ.(S;'XK!PPU6=X1V_2[ZVZ&Q16/_PDNK_]"A>_]]+1_P )
M+J__ $*%[_WTM?<'G&Q16/\ \)+J_P#T*%[_ -]+1_PDNK_]"A>_]]+0!L45
MC_\ "2ZO_P!"A>_]]+1_PDNK_P#0H7O_ 'TM &Q16/\ \)+J_P#T*%[_ -]+
M1_PDNK_]"A>_]]+0!L45C_\ "2ZO_P!"A>_]]+1_PDNK_P#0H7O_ 'TM &Q1
M6/\ \)+J_P#T*%[_ -]+1_PDNK_]"A>_]]+0!L45C_\ "2ZO_P!"A>_]]+1_
MPDNK_P#0H7O_ 'TM &Q16/\ \)+J_P#T*%[_ -]+1_PDNK_]"A>_]]+0!L45
MC_\ "2ZO_P!"A>_]]+1_PDNK_P#0H7O_ 'TM &Q16/\ \)+J_P#T*%[_ -]+
M1_PDNK_]"A>_]]+0!F_$?X3^'_B%;&691;:@BXAO8UY]E<?Q+^H[&M#P!X,L
M_ GAB#0+4AG4;[F8#_6RG[S?3L/8"G?\)+J__0H7O_?2T?\ "2ZO_P!"A>_]
M]+7S&'X,X8PG$U3B"CA8QQDX<DJB5FU=-W6W,[).5N9I6;MH=DL?C)X1864V
MZ:=TOZZ>6QL45C_\)+J__0H7O_?2T?\ "2ZO_P!"A>_]]+7TYQFQ16/_ ,)+
MJ_\ T*%[_P!]+3)_%FH6T+W-SX5NHXXU+22/(@55 R223P!0DVP;21MU6UK6
MM(\.:/=>(/$&IP65C96[SWEY=2A(X(D!9G9CPJ@ DD^E?-?QM_X*R?LK_!9Y
MM,;6I?$>JQ9']G>&I8[D!AV>8-Y2\\$;BPY^7M7P9^V=_P %//C!^V'I"?#+
M1?#4?ACPQ+=*TFD6%T\]SJ+ C8L\F%#J#@B-4 W8)W$*1^G<)^%'%?$V(ISJ
M494,.W[U2:Y?=[QB[2D[;67+?=H_+N+O%KA+AC#U(4ZT:^(2]VG!\WO=I25X
MQL][OFMLFS5_X**?\% O%'[8GC:/X.?!U;U?!-K?K%8VEO$WGZ_=;MJ2N@&X
MKNQY<6,\AF&XA4^O_P#@F?\ \$Y-/_9DT*'XO_%K3H;GQ_J-M^Z@;#IH<+CF
M)#T,S X=QT!**<;F?D/^"9G_  3XN?@';V_QW^-/@"YNO&-S#NT;3ID7;HL3
M#[Q!_P"7A@>?^>8.WJ6K[3_X275_^A0O?^^EKZ#C[C;+,!EJX4X8]W"4]*DU
MO5EU5^L6_BE]MZ+W%K\[X?<#9GF&9OBWBCWL74UITVM*4?LNW227PQ^PM7[[
M?+L45C_\)+J__0H7O_?2T?\ "2ZO_P!"A>_]]+7XB?N9L5F>+_!GA+X@>';G
MPCXY\-6.KZ7>)LNM/U&U6:&4>ZL"#Z@]CR*B_P"$EU?_ *%"]_[Z6C_A)=7_
M .A0O?\ OI:NG4G2FIP;36J:T:?=,BI3IU8.$TFGHT]4UV:/GZU_X)"_L(0Z
MQ/JMQ\*[VX2:8R)92^([Q88<G.U0DBMM'H6-=OX9_P""??[%7A/;_97[-7A6
M7;T_M+3_ +;^?V@OG\:]*_X275_^A0O?^^EH_P"$EU?_ *%"]_[Z6OH<3QCQ
M;BX\M;'UI+LZL[?=>Q\[AN#.$<'+FHY?1B^ZI0O]_+<C\)?##X:^ 23X$^'F
MAZ+E-A_LC28;;Y?3]VHXX''M6Y6/_P )+J__ $*%[_WTM'_"2ZO_ -"A>_\
M?2U\_5K5:\^>I)R?=N[_ !/H:5&C0AR4HJ*[)67W(V**Q_\ A)=7_P"A0O?^
M^EH_X275_P#H4+W_ +Z6LS0V**Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI: -B
MBL?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EH V**Q_^$EU?_H4+W_OI:/^
M$EU?_H4+W_OI: -BBL?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EH V**Q_
M^$EU?_H4+W_OI:/^$EU?_H4+W_OI: -BBL?_ (275_\ H4+W_OI:/^$EU?\
MZ%"]_P"^EH V**Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI: -BBL?_ (275_\
MH4+W_OI:/^$EU?\ Z%"]_P"^EH V**Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI
M: -BBL?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EH V**Q_^$EU?_H4+W_O
MI:/^$EU?_H4+W_OI: -BBL?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EH V
M**Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI: -BBL?_ (275_\ H4+W_OI:/^$E
MU?\ Z%"]_P"^EH V**Q_^$EU?_H4+W_OI:/^$EU?_H4+W_OI: -BBL?_ (27
M5_\ H4+W_OI:/^$EU?\ Z%"]_P"^EH V**Q_^$EU?_H4+W_OI:/^$EU?_H4+
MW_OI: -BBL?_ (275_\ H4+W_OI:/^$EU?\ Z%"]_P"^EH \[_;I^!H_:'_9
M7\7?#>UM/.U%M--[HH"Y;[9;_O8E7T+E?+)])#7Y\_\ !$[XY'X??M)W_P (
M-5N]ECXWTPI C-@"^M@TL9YZ9C,Z^Y*BOU*_X275_P#H4+W_ +Z6OQJ_:Y\)
M^(?V.?V\K_Q'X4TR33Q9^(8/$OAR&0;5$,DOGK&,=45Q)%[A"*_>_"2I3XCX
M?S3A.L_XL'4IWZ35DW\I*G*WDS\ \7J53AOB+*N+J"_A35.I;K!W:7SBZD;^
M:/VMHKD? ?Q8A^(W@G2/'_ACPS=S:=K>FP7UE*'4[HI4#KWZX//O6M_PDNK_
M /0H7O\ WTM?@]6G4HU)4YJTDVFNS6Z/WRE5IUJ4:E-WC))IKJGJF;%%8_\
MPDNK_P#0H7O_ 'TM'_"2ZO\ ]"A>_P#?2U!9L45C_P#"2ZO_ -"A>_\ ?2T?
M\)+J_P#T*%[_ -]+0!L45C_\)+J__0H7O_?2T?\ "2ZO_P!"A>_]]+0!L45C
M_P#"2ZO_ -"A>_\ ?2T?\)+J_P#T*%[_ -]+0!L45C_\)+J__0H7O_?2T?\
M"2ZO_P!"A>_]]+0!L45C_P#"2ZO_ -"A>_\ ?2T?\)+J_P#T*%[_ -]+0!L4
M5C_\)+J__0H7O_?2T?\ "2ZO_P!"A>_]]+0!L44D;%XU=D*DJ"5/4>U+0 44
M44 %%%% !1110 4444 %%%% !1110!^>W@G_ (*__!_P=\1/C]^QO^W?\1T^
M&GB_P]XT\1Q?#N_^(D']CV'B;P]*7>Q>SNYUCAE9 YA"[MSJL3*9"S;?A[]K
M?3O ?_!8+_@G/^Q9_P $M_V-7M/'7C_1=!\&:E\1O%^@(+K3_AQIEOX?6VO%
MO[Q,QP7#/*/]$W^86M=K('\L']U/''@CPO\ $;PK?>#/&.CV]]I^H6TD%Q!<
MP)(NUU*D@.",X)P<5C? #X'^ _V:O@CX3^ 'PQLY(=!\&^';+1M*^T;#-)!:
MP) DDK(JAY66,%WVC<Q)P,T ;VO^(?#'@'PM=>)_&'B2STK2-)LFGU'5=6O4
MA@M8(UR\LLLA"HH )+,0!@DFOQ!_8_\ VS_V5M+_ .#L;]I#]H#6/CYX5L?
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
MM>:A!;N322]6]#JZ*Y7X??'/X,?%B)9?AE\5_#NO9&3'I.L0SNO^\B,64^Q
M-=517P^(PM5TZT'&2Z--/[F&'Q.'Q5)5*$U.+V<6FOO6@5Q/Q^_:#^%O[-'P
M[NOB7\6/$*65C!\EO F&GO9L$K#"F07<XZ= ,EB%!(YS]KC]L7X3_L>^ #XL
M\?7OVG4KI670_#UK*!<ZA*/3/W(P2-TA&%![L54_E)KWB']JK_@J/^T1%:06
M[ZA>R$BSL8BR:=H-GN&6)Y$:#C<YR[M@?,Q5:_3. ?#BOQ-%YEF,_88"G=SJ
M/3F2W46]/)RV6RN]#\P\0/$JAPO*.69;#V^85+*%-:\K>SFEK?JHK5[NRU/K
MK]GO_@M]X5\8?$Z^\-_'KP3#X:T"_O<:!K%B[S?88^ J78Y+9ZF5  "<%,?,
M/O'1M9TCQ%I5OKWA_5;:^L;R%9K2\M)UDBFC895T=20RD<@@XK\\/C+_ ,$,
MXM/^$%A=_!+XA3ZAXST^T)U6VU4K':ZM)RQ$)_Y=V'W5#%E8 ;BIRU?//[,W
M[:W[2W_!/?Q[<_#7Q5HE]-HUK=E=:\#Z[OB,#$Y+P,03 Y!SD HX()#<$?:Y
MGP!P=QSA9XO@JLHU:6DJ,FUS):*4>;6/-T;O%MZN,KGQ&5^(7&? F+IX/C>B
MY4:NL:\4GRMZN,N7W9<O5*THI:*4;'[/45YO^S5^U;\%_P!J[P8/%_PF\3+.
M\2K_ &EI%UB.\T]S_#+'DX'7#@E&P<,<&O2*_ L;@<9EN*GAL53<*D'9QDK-
M/T9_0.!QV#S/"0Q6$J*I3FKJ47=->J"BBBN4ZPHHHH R_&WC3PS\.?"&I^//
M&>K1V&DZ/927>H7DN<11(I9C@<DX' &23@ $FOCCXC_\%SOV<?#OF6WPW^'?
MB;Q),F=DMPL5A;O]&8O(/QC%<3_P6V_:S^S6MC^R3X+U/YYA%J/C!HGZ)D-;
M6I^IQ,P]!$>YJA^P!_P25^%_Q3^"NE_&C]HZ/6GN=<8W.DZ':7WV:$6) \J2
M7:OF%I,%QM=1L9.Y-?N/#?!G!^3\(4^(>+.=JM*U*G%V<HVT=E9^]9OXDE&S
MOJ?A7$O&O&6<\8U.'>$>1.C&]6I-7497U5W=>[=+X6W*ZM[IQ'Q'_P""YG[2
M7B/S+;X<_#_PSX:A;.R6:.6^N$^CNR1G\8Z\AU'QY_P4(_;VOTT!K_QCXQMY
M'YL["V^SZ:ASUD6)8[=,'C<^,>M?J_\ #C]AK]D3X4>7)X)_9\\-1318\J[O
MK$7LZ'U$MR9'!]P:]4@@AMH5M[:%8XT4*D:* % Z  =!73'Q3X+R!WX>R2$9
MKX:E2SDO_2I?=41R2\*.-N(%;B//)R@_BITK\K^_EC]]-GYF? /_ ((7^.]<
M\C6?VC?B5;Z';MAGT3PZ!<W1'=6G<>5&W^ZLH]Z^V?@+^PO^RY^S>L-U\-?A
M58C4X@/^)[JB_:[TM_>$LF?+SZ1A![5ZY17Y[Q'XC\8<47CC,2U3?V(>Y"W9
MI:R_[><C]%X;\->#>%;3P>%3J+[<_?G?NF](_P#;JB%%%%?#GW84444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7P/_P7
M3^!G]N?#OPO^T'I-GF?0KQM*U=T7DVL_SPLQ_NI*K*/>XK[XKB?VC_A!I_Q\
M^!/BKX/ZB$ UW1Y8+:20<17 &^"0_P"Y*L;?\!KZO@C/WPSQ5A<QO:,))2_P
M2]V?_DK;7FD?)\<\/QXHX3Q>76O*<&X?XX^]#_R9)/R;/F__ ((K?'/_ (6-
M^S'<_"K4[S?J'@;4S!&K-EC8W!:6$GZ/YZ#T"**^QJ_'?_@E!\8+_P" ?[:5
MGX&\4,]G:^*!+X>U2WF./*N]^8,C^\)T$7MYK5^Q%?4>,60+).-JU2FOW>(2
MJQ[7E\?_ ).F_1H^4\&>('GO ]&G4?[S#MTI7WM&W)_Y(TO5,****_+#]7*N
MMZYHWAK1[KQ#XBU:VL+"R@:>\O;R=8XH(E&6=W8@*H ))/ JQ%+%/$LT,BNC
MJ&1U.0P/0@]Q7Y9?\%9?^"@I^+VO7'[-?P<US=X5TJYQXAU*UD^75KI&_P!4
MI'WH(V'7H[C/(52?3/\ @D%^WU_PDEA:_LF?%_6LZA:0[?!6IW,G-S"HS]A9
MC_&@!,?J@*<%5#?JN+\)>(<)P5'/IKWOBE2M[T:5M)OSZRC;2+N]4TOR;">+
MW#N,XWED$'[OPQJW]V56^L%Y=(ROK)66C3?Z!T445^5'ZR%%%% !1110 45R
MOQ?^-_PG^ GA23QK\7O'5AH>GID))>2_/.P&=D48R\K_ .R@)]J_/C]I#_@N
M+XVU+75TC]E_P=;:;IEM<!I-8\1VPFN+T _=6%6VPH>^2SD$8*&OL>%N ^)^
M,)_\)]"\%O.7NP7ES=7Y13?=6/C.*N/^%^#:?_"C7]][4X^]-^?+T7G)I=G<
M_3&BO@7X!_\ !=#P%KGDZ-^T;\-KC0[@X5];\.DW-J3W9H&/FQK_ +IE/M7V
M9\)?CW\&?COH_P#;GP@^)6D:_ JAI5L+L&6$'IYD1Q)$?9U!K#B#@GBGA>3_
M +1PLH1_F7O0?_;\;Q^3:?D='#O''"O%45_9N*C.7\C?+-?]N2M+YI->9UU%
M%%?*GU84444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 5X7_P3W_Y(GJW_8]ZS_Z4FO=*\+_X)[_\D3U;_L>]9_\ 2DT
M>Z4444 %8_C+X>> /B+I_P#9'Q!\#Z/KMJ,XMM8TV*YC&>ORR*16Q15TJM6C
M44Z<G&2V:=FOF9U:5*M3<*D5*+W35T_DSYR^(_\ P2B_8>^(OF3CX2G0;F3/
M^E>'-1EMMOTBRT(_[XKYY^+_ /P0>TR/2KO4_@5\;+QKJ*)FL](\36,;"=AR
M$-S#L"9Z9\HCZ5^B=%?<93XF<=9-)>PQTY)?9F_:*W;W[V7HUY6/ALW\,. \
MZC+V^ A&3^U!>S=^_N6N_5/SN?BU^SA^U9^TA_P3@^+=]X$\3:!>+I\5X%\2
M^"=68HCGC]]"W(CD*X*RKE77;G>-N/UH_9V_:3^$W[47P_A^(GPF\1+=VYPE
M]92X6YL)B,F*:/)V-UP>58#*DCFN6_;$_8A^$7[8_@[^R_&-H-/U^SA8:)XG
MM(0;BT/4(PX\V(GK&Q[DJ5/S5^6.M:!^UG_P2Z^/\=W#/)I=ZI/V6]A#2Z;K
MUH&&5/02(>,H<.A(/RMM-?JM7#<,>-&#=;#<N%S:*]Z+^&K9;]VO[VLX[24H
MI,_)Z6*XI\$\8J.*YL5E$G[LE\5*[V[)_P!W2$]XN,FT?MI17P=X5_X+Q?!B
M;2;4^-_@KXGMK[R%^VKI4MM/$),?-L,DD9*YZ9&<'VYZG3?^"XO['U[@7?A;
MQW9YZFXT:U8#_OBZ;_(K\MK^%W'^'DU++YNW:TOR;/U2AXJ^'N(BG',(*_>\
M?S2/LBBOF/PG_P %?OV%O$TXMKWXD:AHSL<+_:V@7(4G_>B211]20*]9\%?M
M:_LP?$78G@S]H#PA?2OC;;)KT"S?]^G8./RKP<=PIQ/EBOB\%5@N[IR2^^UO
MQ/H,!Q;PMFCMA,=2F^RJ1;^Z]_P/0Z^6O^"EO[?NG?LG>!3X$\ 7T,_C_7K4
M_P!GQ\.-*MSE3=R+_>SD1J>"P).0I![S]MC]LWP-^R!\(7\:WTMOJ&N:FC1>
M%M&67/VV?'^L;!R(4R&=AZA0<L*_,']F+]GCXR?\%)_VDM0\2>-=<NY+.2\%
M[XT\3.O^HC8_+#%D;1(P79&@X15SC:F*_0O#;@?!8RE/B+/O<P&'U][_ )>2
M72W6*>C_ )I6@KZV_.O$SCK&X*K#AO(/?S#$:>[_ ,NXOK?I)K5-_#&\W;2_
M3_\ !.?]@G7?VSO'MW\5?C ]\?!=E>N^J7DD[B?6[QCN:%9,[L9;=)(#GD '
M<VY?T:\%?\$\OV*/ &PZ#^SAX;F:/&U]8MFU!L^N;II.:]-^'OP^\'_"KP3I
MOP[\ :%#INCZ1:K;V-G .$0=R>K,3EF8Y+,222236S7B\9^)>?\ $^:3J4*T
MZ.'6D*<9.*Y5LY*+2<GN][;+1'M\%>&/#W"V50IXBC"OB'K.I**D^9[J+DFU
M%;+:^[U9G^'?"7A3PA9_V=X3\,Z?I=N.D&G64<"?]\H *T***_.9SG4DY3=V
M^K/TF$(4X*,%9+HM$%?&G_!8[]DS_A<7P8C^._A#3/,\0^"('>^6),O=:63N
ME!]3$<RCT4R]R*^RZ9<VUM>VTEG>6Z2PS(4EBE0,KJ1@J0>"".,5[?#.?XSA
MC/*&98;XJ;NU_-':47Y25UY;[GA\3\/X/BG(J^68GX:D;)]8R6L9+SB[/SVV
M9^=G_!$C]K/>E]^R3XTU/E?-U'P<TK]N6N;5?UF4?]=CZ5^BU?BW^V/\$O&'
M_!/W]L2/6?AS-+9V,=^FN^"+[DJL/F9\AC_%Y;!HF4GYDVD\/7ZU_LV?';PQ
M^TI\%=!^,?A1E2'5K,&ZM-^YK2Y7Y9H&]T<,,]QANA%?IWB_D&#J5J'%.6:X
M;&)-V^S4M=W[.2NVOYXSN?EW@[Q!C*="OPKFFF*P3:5_M4T[*W=1=DG_ "2A
M8[FBBBOQ0_;PHHHH ***X_XZ_'3X<?LY_#6_^*?Q0UQ+/3K%,)&"#+=S$'9!
M"I(WR,1@#ZDD*"1OAL-B,;B(4*$'*<VE%)7;;V21ABL3A\%AYXBO-0A!-RDW
M9)+=M]C$_:L_:D^'?[)7PHNOB9X]N!+*<PZ-I$4@$VI71&5B3T'=GP0J@GDX
M!_)?PIX8_:)_X*C?M3S75_>&2\OW$FI:@8V^QZ%IZM@*JYX10<(F=SN<DY9F
MIWQ(^(/[0O\ P5"_:BMM.T?3'DN+R5H-!T9)2;71;$-EG=L< ##22D99L #[
MB#]7OV1/V3OA[^R%\*+?X>>"XA<7LVV;7M;DB"S:C<XP7/\ =1>0B9PH]268
M_P!%167^"G#W,^6IF^)CY-4HO]$__ Y+K&)_-\GF/C?Q%RKFIY/AI>:=62_5
MK_P"+Z2D<)<_\$IOV*-0^&FF_#K4/A8IFTVS$*^(K6Z>#49Y.2TTLB$"5B23
MAU95! 4   ?-7QJ_X(0ZS;>=J?[/GQCAND&3'I'BN#RWQZ"Y@4JQ[<Q*/?T_
M2.BORO*/$[CG)J[J4<;.2;;<9^_%MN[TE>UW_+8_6,X\+N!,ZH*G6P4(M))2
MI^Y))*RUC:]E_-<_%J7]B'_@I%\%[^XTCPS\-O&EFJR;FE\*ZHTD4I[.#;2'
M)X'7D=P#1]D_X*P^$OE2/X^VZ+Q^[.LM'Z=LK7[2T5]U_P 1VS&OKC,MP]1]
M79Z_>Y'P?_$!<NP^F#S/$4UT5UI]RB?B??\ [9G_  47^$%_9W/C'XI^/=,8
MS;[>'Q-;RA)RA#%=MPGSCD9'HP]:_5[]CW]J/PE^UO\ !/3OBCX=\NWO0/LV
MOZ4KY:PO5 WQ^I0Y#H>ZL,\Y ;^V-^RUX3_:Y^"6H?##7_+M[]1]I\/ZJR9:
MQO5!V/ZE#DHX[JQQR 1^6'['_P"T1\1/^"=G[45[X=^(FF75MIIO?[+\<Z(>
M2$5OEN$ X9X\[T8<.C, </FO9K8?(_%[A6K4RW"PP^8X:\N2"2]I%]-$KWM9
M7^&:2NE*[\6CB,]\'>*Z-+,\7/$Y=BDH^TFV_9S76S;M;=V?O0;=FX67[1T5
M4T+7=&\4:)9^)/#NIPWMAJ%M'<65Y;R!HYXG4,CJ1U!!!!]ZDU/4].T73KC6
M-8OX;6TM86FNKJYE"1PQJ"6=F/"J "23P *_G%PFI\C6NUNM^UC^DE4@X<Z:
MM:]^EN]^P:GJ>G:+IUQK&L7\-K:6L+375U<RA(X8U!+.S'A5 !))X %1Z#X@
MT+Q5HUMXB\,:U::CI]Y$)+2^L;A989D/1D=20P]P:_*3_@I+_P %)=8_:5UB
M;X&_ R\N8?!$-R([JZA5EF\03!N"1U$ ;&R/JYPS#[JKY9\.?C3^VI_P3M\8
MPZ<MIK7AM+M5N9?#7B.R<V-^A .[RVP,] 7C*N"-I8$$5^XY;X&YQC<CA7K8
MB-'%U+RA1GHW%6O=WNI:JZ46HW2E9MV_"LR\=LFP.?3H4</.MA*=HSK0U2FV
M[65K..CLW).5FXW25_VYHKY-_9._X*X_ #X_?9O"GQ*EC\#>)Y,((-2N0;"[
M?I^ZN#@*2?X)-IY !<U]8JRNH=&!!&00>"*_)<\X>SKAO&/"YE0E2GTOL_.+
M6DEYIM'Z]D7$62<2X)8K+*\:L.MGJGVE%ZQ?DTF+16?XB\6^%/"%G_:/BSQ-
MI^EVXZSZC>QP)_WTY KP/]H;_@J-^R;\"/#\EUI7Q L?&>KL&6TT;PI?1W.Y
MQ_STG0F.%<XR22WHK8(J,JR'.<[KQHX##SJ2;LN6+:^;V2[MM)=2\US_ "3(
MZ$JV88B%*,5=\TDG\ENWV23;Z'T1=WEII]I+?W]U'!!#&7FFF<*D:@9+,3P
M!R2:^.OVE_\ @LY\!?A#JD_A3X0:+)X\U.#*RWMI>"#3HGZ8$^UC-CK\B[3V
M?T^)?CK^V7^UY_P4$\91_#?1+*^.GWLV-/\  _A:*0QN >&F(^:<C@EI#L7!
M8*@KZ3_9(_X(EV%O%;^,_P!KG5OM$K .G@[1[LJB>UQ<H06/^S$0!@?O#TK]
MIPWAUPCP1A(XWC/$<U1J\</3>K]6FF_5.,$_ML_$L3XD<7\<XR6"X*PW+33M
M+$5%HO1-.*[V:E-K["/ ?BE_P5/_ &XOV@=2_P"$8\&^(G\/17C[+?2/!%BZ
M7$GH!+\\Y;']QE!]*/A;_P $L/VXOV@=2_X2?QCX=?P]%>-ON-6\;W[I<2>I
M,6'G+8_OJH/K7ZQ?"WX%?!KX):;_ &3\)?AEHOA^(IMD;3;!(Y)1_P!-),;Y
M#[L2:ZRN?$>,V'RBB\/POEM+#0VYI).3\VHV5_\ %*9TX?P5Q&<5EB>*<SJX
MJ>_+%M07DG*[M_AC _'OX@_\$=/VV_A]*U[X9T#1_$T<+;DG\/:VJ2*!R"$N
M!$V?9<GTS7+)\8?^"E7[)CB+5O$OQ(\.6UN0(X_$%M//9#_<%TKPD?[O!K]K
M:1T21#'(@96&&5AD$>E9T/'/-,335'.L!0Q4/./*W]_/'[HHO$> ^586JZV2
MYA7PL^ZES)?=R2^^3/Q/^$7P:_:A_P""F_QXNM<UG7KF_E9T/B'Q5J,>+73(
M/X455 4'&=D"8R<GY1N8?K7^S)^RW\)_V3_AW%\/OA=H^S?M?5-5N &NM1F
MQYDK@<]3M4850< #)SW.A^&_#OABWEM?#>@66GQ3SM--'8VJ1+)(0 78( "Q
M &2>>!5VOE>.?$C,.+XPP="FL/@Z:7+2CMIUE9).WV59**V5]3ZS@3PTR_@^
M<\97J/$8RHVY5I+77=1NVU?[3;<I/=VT"O(?VLOV)_@G^U_X7_LOXA:-]EUB
MVB*Z3XEL$5;NS/4+G_EK'GK&V1R2-K?,/7J*^#R[,L?E&,AB\%4=.I!W4HNS
M7_ ?5/1K1Z'WV999E^<8*>$QM)5*<U9QDKI_\%=&M4]5J?BC\9?@!^U1_P $
MSOC)8^+=,UNYLPLY_L'Q=H^?LM\G4Q2*<@$@?/!)D$ XW+AC^B'[!/\ P4I^
M'W[6VFP^"/%_V;0/'L$/[_2C)B#4@H^:6U+')X!)B)+*,D;E!8?07Q(^&O@3
MXO>#+[X>_$GPQ:ZOH^HQ>7=V5VF5;T8$<HP/(92&4@$$$5^3G[='_!-_XG?L
M<>(#\7/A'?ZCJ?@R&[6>TU>V<B]T.0,"@G*8( .-LZX&< [25W?T!@,]X:\7
M\%#+<\MA\RBK4ZR22F^B?J]X-ZO6#3=C^>LPR'B;P<QT\SR+FQ&6R=ZE%MMP
M[M>G2:6BTJ)I<S_7^BO@O_@GK_P5JTSQ_P#8?@M^U)J\%CKIVP:3XME(C@U
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
M<LTVDW%IQ>G+_*?%?CC_ (+B_M5:_O@\&^$/"6@1'[DB6,UU.O\ P*238?\
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
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ I'574HZ@J1@@C@BEHH ^!_P!K'_@C)I7Q&^,>F^-OV?\
M5;+P]HNLZD/^$KTF1<1Z<ARSW%HHX(."/)X 9A@A"0GVI\(OA-X%^!OPZTOX
M6?#?1EL=(TBV$5M$.6<]6D=OXG9B69NY)-=)17U&=<9<1<099A\!CZ[G3H?#
M?=]G)_::6B;U2\VV_E<DX+X;X>S/$8_ 4%"I7^*VR7517V4WJTM&_))(HHHK
MY<^J/&?VX?V/_"G[8OP<G\%:AY-IKVG[[GPQK#IS:7./N,1R8I,!7'/9@"46
MOS9U/_@CE^W189^R^!='O<=/LWB.V&?^_C+7[&45^C<)>*7%/!N!>#P;A.DW
M=1J)RY6]^6THM)[M;7U6K=_S;B_PJX4XTQZQN-4X54N5RIM1<DMN:\9)M;)[
MVT>B5OQ;?_@F-_P4/\)N9+'X)ZE%@Y#Z;XDL6)]_W5P3V^O2NC^"7_!)[]K[
MXW?$%H?B_H]WX1TR(H=2UW7I1/-(O0)"@<F5\#N54 <MT!_8&BOJZ_C[Q?6P
M\XPH483:LIQC*Z\TI3DOO37DSY+#_1]X.HXB$IUZ\Z:=W"4HV?DW&$7;T:?F
MCS+]F;]D3X'_ +)WA7_A'?A/X66.YFC U+7+S$E[?$=Y),#Y<\A%"H.RY))]
M-HHK\9QV/QN9XN>)Q=1U*DG=RD[M_-_TC]KP& P65X2&%PE-4Z<591BK)?)?
MCWW84445R'6%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 5X7_P3W_Y(GJW_ &/>L_\ I2:]TKPO_@GO
M_P D3U;_ +'O6?\ TI- 'NE%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 -DCCFC:&:-71U(96&00>H(KX?_ &Q_^"-?
M@GXLZZ/'O[-NHZ?X2U.ZNU.JZ+<HPTZ168;YH@@)@< D[%!1L8 0Y)^XJ*^@
MX<XISSA3'?6LLK.$GHUO&2[2B]'Y=5NFF?/<2<*Y%Q;@?JN9T5.*U3VE%]XR
M6J\^CV::/+?V3OV2/A;^R%\-X_ WP^LO.O)PLFMZ[<1@7&I3@?>8C[J#)"1@
MX4$]269O4J**\O'X_&YIC)XO%U'.I-WE)ZMO^MELEHM#U<OR_!95@J>$PE-0
MIP5HQ6B2_K=[MZO4****XSL"BBB@ HHHH **** *NJ:)HVN1PPZUI-M>);W,
M=Q MU L@CFC;<DBA@<.K $,.01D5:HHIN4FDF]$)1BI-I:L****0PHHHH **
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 **** "O"_^">__ "1/5O\ L>]9_P#2DU[I7A?_  3W_P"2)ZM_V/>L_P#I
M2: /=**** "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 **** "O"_\ @GO_ ,D3U;_L>]9_]*37NE>%_P#!/?\ Y(GJW_8]ZS_Z4F@#
MW2BBB@ 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@ KPO\ X)[_ /)$]6_['O6?_2DU[I7A?_!/?_DB>K?]CWK/_I2: /=****
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 **** "O"_
M^">__)$]6_['O6?_ $I->Z5X7_P3W_Y(GJW_ &/>L_\ I2: /=**** "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 YKXR_%SP)\ OA'XG^./Q1UD:?X;\'Z
M!=ZSKMZ4+&&TMH6FE8*.6.Q#A1R3@#DU^:,O[:O_  4\_;G\&_LZ_M4?!/QK
MX#^"G@+XI?&M]/\  /AK4-#O];U34+%-&UV2.?6Y(-0M('MY?L)<6,2G:SP2
M&=C#L;]#/VP?V==&_:Z_95^(G[+^OZS)IMKX^\':AH;ZE%'O:S:X@>-)PN1N
M*,ROMR =N.]?S]_L]_MO?M2?\$</C#\#/^"8G_!5_P"'DFA^ _A%\:7\4^#_
M (H6L$]Q ^D/INL6;K"8XS]MM?/U19E9<30*)(GC)"I& ?M%^Q%^UO\ MB>.
M/VE_B/\ L9?MN_ SPEH7BKP#X?TG7M*\:^ M4N7T?Q5IE_+=0QSP6MTIFM62
M2TE1T>60[U8 X"N_.?MC?\%'_B3IG[;/@_\ X)<_L-Z'X>U7XP^)M'DU[Q9X
MC\50S7&C^!-"09-Y<V]O)')=7$G"Q6XDB&9(B[JLBY^G/AQ/\%/BI-9?M-?"
MK5='U]?$GARWMM/\6Z+?"XAO],622:)8Y$8HZ!Y9&!'.6(SVK\>_^" _BS4O
MVB_^"_/[=/[2GB>=KB]L=0NO#^G32\M'IXUAH+>+/HL&EVRXZ?(/2@#[0E_X
M*!?M!?L.?ML_#O\ 8P_X**^(?"/B/0/C0DMK\*OC#X1\.S:+&VLQ-&KZ1J5C
M+=72QR2&:$0W$4H5VD13&,NR?<E?D!_P>>:6VF_\$[OAA\5]%NGM-<\-_'73
M_P"R]0@;;+;^9I>I2$HPY4^9;PMD=T%?JA^S[\0KKXN? 7P1\5[Z)4G\3^$-
M-U:9$& KW-K',0!V&7H Z^BBB@ KPO\ X)[_ /)$]6_['O6?_2DU[I7A?_!/
M?_DB>K?]CWK/_I2: /=**** "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 Y
MOXO?%KP'\"?AKK'Q=^)^M#3O#^@VOVG5;\Q,X@BW!2Y"@G )&?0<U\J_\%D_
MV;/@Q^UO8_L[?L^_'WP9%KGA;Q1^T%'8ZO8M,\3M$WA;Q$_R2QE7C8/'&X92
M"&C4]J^B?VN/V;/"/[8G[,OCC]ESQ[KFI:;H_COP[<:1J&H:.\:W-O'*N"\9
MD1TW#@_,I%?#'Q6_8F_X*[_"Q?V>_AAX7_;(\'_%G2?!7Q;@N-'\6^,/@_>'
M5M"AC\/ZS:QW.J26>JI'?6Z),(2Y6&5YIH"\ARP< ^?O^"+_ ,/_ (T_\$JO
M^"WWQ3_X(Y^'OBKJOC'X-7W@9_&7A>WU20/+H[,;9XY6"C;%(1-);R[ JS,L
M,NU>%%S_ ((D^!;W]DG_ (.'OVVOV6_%T+6EQXM67QAX;688%UITFJ?:X3&3
MP^(M50''>-_[IQ^@_P"PS_P33\)_LD?$_P >?M0?$CXJZG\4/C9\4)8_^$X^
M)>MZ?%9E[:(*L-A8VD19+*SC6.,"(,['RTW.P1 L/[9O_!-RV_: _:!\"_MN
M_ #XJ+\-?CE\.();+1?&#Z&-2L-7TN4.)=*U2S\V%KFV;S)"I26.2)I&=&SC
M !\.?\'C7]N_$O\ 90^!/[)W@&Q:_P#%GQ$^.UH/#VEQ<R7<L5C=6@10.3F7
M48!]6%?K%\)/ %G\*/A5X9^%NGS^;;^&O#UEI4$N,;TMX$A4X[9""OF[X<_\
M$V_%OC;]KO0OV\/V]?C1I7Q)\>^"=.GL?AGX?\->%GT?PWX/6?B>YM[::YNI
MKB\D &ZXFF.T !479&5^LJ "LGQUX.TOX@^$;_P7K=Q=PVFHP&&>2QN6AF52
M0<HZ\J>.HK6HH \+_P"'>_P3_P"AM\=_^%E<_P"-?.7[/?\ P3$^ ?[2G@[4
M/B%X]\;>/K:^@\2:AIR1Z/XJ:"+RH)V5"5*-EL=3GFOT!KS[]FOX,ZG\#/ 5
M[X0U76H+^2Z\0WVHK-;QLJJL\I<)@]P#@T ?/7_#D+]DW_HHWQ3_ /"V/_QJ
MC_AR%^R;_P!%&^*?_A;'_P"-5]C44 ?'/_#D+]DW_HHWQ3_\+8__ !JC_AR%
M^R;_ -%&^*?_ (6Q_P#C5?8U% 'QS_PY"_9-_P"BC?%/_P +8_\ QJC_ (<A
M?LF_]%&^*?\ X6Q_^-5]C44 ?'/_  Y"_9-_Z*-\4_\ PMC_ /&J/^'(7[)O
M_11OBG_X6Q_^-5]C44 ?'/\ PY"_9-_Z*-\4_P#PMC_\:H_X<A?LF_\ 11OB
MG_X6Q_\ C5?8U% 'QS_PY"_9-_Z*-\4__"V/_P :H_X<A?LF_P#11OBG_P"%
ML?\ XU7V-10!\<_\.0OV3?\ HHWQ3_\ "V/_ ,:H_P"'(7[)O_11OBG_ .%L
M?_C5?8U% 'QS_P .0OV3?^BC?%/_ ,+8_P#QJC_AR%^R;_T4;XI_^%L?_C5?
M8U% 'QS_ ,.0OV3?^BC?%/\ \+8__&J/^'(7[)O_ $4;XI_^%L?_ (U7V-10
M!\<_\.0OV3?^BC?%/_PMC_\ &J/^'(7[)O\ T4;XI_\ A;'_ .-5]C44 ?'/
M_#D+]DW_ **-\4__  MC_P#&J/\ AR%^R;_T4;XI_P#A;'_XU7V-10!\<_\
M#D+]DW_HHWQ3_P#"V/\ \:H_X<A?LF_]%&^*?_A;'_XU7V-10!\<_P##D+]D
MW_HHWQ3_ /"V/_QJO,?CM_P2:_9R^'OQ(^&GA;0_'OQ&>V\5>)WL-2:Z\7L[
MI$(2X,9$8VMD=2#7Z*5Y]\8_@SJ?Q-\>^ /%]CK4%K'X.\0OJ-S#-&Q:X4Q%
M-BD=#DYYH ^>O^'(7[)O_11OBG_X6Q_^-4?\.0OV3?\ HHWQ3_\ "V/_ ,:K
M[&HH ^.?^'(7[)O_ $4;XI_^%L?_ (U1_P .0OV3?^BC?%/_ ,+8_P#QJOL:
MB@#XY_X<A?LF_P#11OBG_P"%L?\ XU1_PY"_9-_Z*-\4_P#PMC_\:K[&HH ^
M.?\ AR%^R;_T4;XI_P#A;'_XU1_PY"_9-_Z*-\4__"V/_P :K[&HH ^.?^'(
M7[)O_11OBG_X6Q_^-4?\.0OV3?\ HHWQ3_\ "V/_ ,:K[&HH ^.?^'(7[)O_
M $4;XI_^%L?_ (U1_P .0OV3?^BC?%/_ ,+8_P#QJOL:B@#XY_X<A?LF_P#1
M1OBG_P"%L?\ XU1_PY"_9-_Z*-\4_P#PMC_\:K[&HH ^.?\ AR%^R;_T4;XI
M_P#A;'_XU1_PY"_9-_Z*-\4__"V/_P :K[&HH ^.?^'(7[)O_11OBG_X6Q_^
M-4?\.0OV3?\ HHWQ3_\ "V/_ ,:K[&HH ^.?^'(7[)O_ $4;XI_^%L?_ (U1
M_P .0OV3?^BC?%/_ ,+8_P#QJOL:B@#XY_X<A?LF_P#11OBG_P"%L?\ XU1_
MPY"_9-_Z*-\4_P#PMC_\:K[&HH ^.?\ AR%^R;_T4;XI_P#A;'_XU1_PY"_9
M-_Z*-\4__"V/_P :K[&HH ^.?^'(7[)O_11OBG_X6Q_^-4?\.0OV3?\ HHWQ
M3_\ "V/_ ,:K[&HH _.O]D__ ()-?LY?&/X;W_BGQ5X]^(T5S;^)]1L(UL/%
M[1H8H9BB$@QGYL#DYYKT[_AR%^R;_P!%&^*?_A;'_P"-5]"_LU_!G4_@9X"O
M?"&JZU!?R77B&^U%9K>-E55GE+A,'N <&O0: /CG_AR%^R;_ -%&^*?_ (6Q
M_P#C5'_#D+]DW_HHWQ3_ /"V/_QJOL:B@#XY_P"'(7[)O_11OBG_ .%L?_C5
M'_#D+]DW_HHWQ3_\+8__ !JOL:B@#XY_X<A?LF_]%&^*?_A;'_XU1_PY"_9-
M_P"BC?%/_P +8_\ QJOL:B@#XY_X<A?LF_\ 11OBG_X6Q_\ C5'_  Y"_9-_
MZ*-\4_\ PMC_ /&J^QJ* /CG_AR%^R;_ -%&^*?_ (6Q_P#C5'_#D+]DW_HH
MWQ3_ /"V/_QJOL:B@#XY_P"'(7[)O_11OBG_ .%L?_C5'_#D+]DW_HHWQ3_\
M+8__ !JOL:B@#XY_X<A?LF_]%&^*?_A;'_XU1_PY"_9-_P"BC?%/_P +8_\
MQJOL:B@#XY_X<A?LF_\ 11OBG_X6Q_\ C5'_  Y"_9-_Z*-\4_\ PMC_ /&J
M^QJ* /CG_AR%^R;_ -%&^*?_ (6Q_P#C5'_#D+]DW_HHWQ3_ /"V/_QJOL:B
M@#XY_P"'(7[)O_11OBG_ .%L?_C5'_#D+]DW_HHWQ3_\+8__ !JOL:B@#XY_
MX<A?LF_]%&^*?_A;'_XU1_PY"_9-_P"BC?%/_P +8_\ QJOL:B@#XY_X<A?L
MF_\ 11OBG_X6Q_\ C5'_  Y"_9-_Z*-\4_\ PMC_ /&J^QJ* /S_ /VFO^"0
MG[-/PH^ GBGXB^&O'_Q)DO\ 2-+:>U2]\8L\3,& ^91&"1SZBNG\$_\ !%C]
ME;7O!FD:Y>_$3XH+->Z9;SRK%XT(4,\:L<#RN!DU]4?M!?#.^^,OP7\1?"_3
M-3BLKC6].:VBNIT+)&20<D#DCBNA\):-+X<\*:9X>GF61[#3X;=Y$& Y2-5)
M'L<4 ?)/_#D+]DW_ **-\4__  MC_P#&J/\ AR%^R;_T4;XI_P#A;'_XU7V-
M10!\<_\ #D+]DW_HHWQ3_P#"V/\ \:H_X<A?LF_]%&^*?_A;'_XU7V-10!\<
M_P##D+]DW_HHWQ3_ /"V/_QJC_AR%^R;_P!%&^*?_A;'_P"-5]C44 ?'/_#D
M+]DW_HHWQ3_\+8__ !JC_AR%^R;_ -%&^*?_ (6Q_P#C5?8U% 'QS_PY"_9-
M_P"BC?%/_P +8_\ QJC_ (<A?LF_]%&^*?\ X6Q_^-5]C44 ?'/_  Y"_9-_
MZ*-\4_\ PMC_ /&J/^'(7[)O_11OBG_X6Q_^-5]C44 ?'/\ PY"_9-_Z*-\4
M_P#PMC_\:H_X<A?LF_\ 11OBG_X6Q_\ C5?8U% 'QS_PY"_9-_Z*-\4__"V/
M_P :H_X<A?LF_P#11OBG_P"%L?\ XU7V-10!\<_\.0OV3?\ HHWQ3_\ "V/_
M ,:H_P"'(7[)O_11OBG_ .%L?_C5?8U% 'QS_P .0OV3?^BC?%/_ ,+8_P#Q
MJC_AR%^R;_T4;XI_^%L?_C5?8U% 'QS_ ,.0OV3?^BC?%/\ \+8__&J/^'(7
M[)O_ $4;XI_^%L?_ (U7V-10!\<_\.0OV3?^BC?%/_PMC_\ &J/^'(7[)O\
MT4;XI_\ A;'_ .-5]C44 ?'/_#D+]DW_ **-\4__  MC_P#&J\Q\+?\ !)K]
MG+5_VKO%7P=NO'OQ&&E:/X8L;^UE3Q>PG:65V#!G\O!7C@8&*_12O/O#GP9U
M/1/VDO$GQQEUJ![37/#UGIT5BL;"2)H6)+D]"#F@#YZ_X<A?LF_]%&^*?_A;
M'_XU1_PY"_9-_P"BC?%/_P +8_\ QJOL:B@#XY_X<A?LF_\ 11OBG_X6Q_\
MC5'_  Y"_9-_Z*-\4_\ PMC_ /&J^QJ* /CG_AR%^R;_ -%&^*?_ (6Q_P#C
M5'_#D+]DW_HHWQ3_ /"V/_QJOL:B@#XY_P"'(7[)O_11OBG_ .%L?_C5'_#D
M+]DW_HHWQ3_\+8__ !JOL:B@#XY_X<A?LF_]%&^*?_A;'_XU1_PY"_9-_P"B
MC?%/_P +8_\ QJOL:B@#XY_X<A?LF_\ 11OBG_X6Q_\ C5'_  Y"_9-_Z*-\
M4_\ PMC_ /&J^QJ* /CG_AR%^R;_ -%&^*?_ (6Q_P#C5'_#D+]DW_HHWQ3_
M /"V/_QJOL:B@#XY_P"'(7[)O_11OBG_ .%L?_C5'_#D+]DW_HHWQ3_\+8__
M !JOL:B@#XY_X<A?LF_]%&^*?_A;'_XU1_PY"_9-_P"BC?%/_P +8_\ QJOL
M:B@#XY_X<A?LF_\ 11OBG_X6Q_\ C5'_  Y"_9-_Z*-\4_\ PMC_ /&J^QJ*
M /CG_AR%^R;_ -%&^*?_ (6Q_P#C5'_#D+]DW_HHWQ3_ /"V/_QJOL:B@#XY
M_P"'(7[)O_11OBG_ .%L?_C5'_#D+]DW_HHWQ3_\+8__ !JOL:B@#XY_X<A?
MLF_]%&^*?_A;'_XU1_PY"_9-_P"BC?%/_P +8_\ QJOL:B@#PC_@G8EQ:_L_
MW.E3ZG=W::?XMU2TMY;VY:60113;$!9N3@ 5[O7GW[-?P9U/X&> KWPAJNM0
M7\EUXAOM16:WC9559Y2X3![@'!KT&@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **^&/^"_WB?]MOX4?\$\OB/\>_V3OVJ(/AVG
M@_P]%>7=MIOA-9M3OP;E8YU34))R+1?*D!4Q0"57C/[T!@%[W_@A]XQ\7_$+
M_@DO\"/&_C[Q5J6N:UJG@2&XU+5]8OI+FZNY6DDW22RR$O(Q[LQ)- 'U517Q
MK_P4'\ _MR_MG_&&T_8L_91_:$U+X)>"]-\.0ZW\4_BQHEFTFKW)N9IXK/1M
M+</'Y,A%M--/.KAHU>V .)"C_F5^W]\!?^"I'_!N-K/A/]N?X!?\%#/'WQH^
M%=SXE@TWQMX-^).J7%RGF2[G59HY)98RDP21!<Q"*6*0H/FWT ?O_17/?"3X
MCZ+\8OA5X9^+OAJ&6/3O%7AZRUBPCG&)%@N8$F0,.S;7&?>OF;Q#_P 9+_\
M!8O0_#J?O_#O[,_PWEUF^*_<_P"$J\1[[6U1L]6@TJUO'XZ#4D.>10!]=45^
M>G_!QYXV_;H^!_\ P3G\?_M&_LL?M:+\/K'PG;Z:;[3-#\+C^U=0CN=0@LY@
MNIO.QM0HN$D4P0I(/*8>8=XV_0G_  20\2>(O&/_  2[_9\\5^+M>O=5U34O
M@]X>N=1U+4KIY[BZF>PA9Y9)')9W8DDLQ)).30!]#T5^?W_!43]E7_@IK_P4
M"_:(T'X0_L=?M>^(?V>/AYX"T=KGQ5X[TB>]ANO$FKWA4QV=O#;RPFXAM;>-
M':0RK&)+PH-[QN(_AG_@H9_P3%_X*K_\$]/V./''[7WCC_@XO^,>L6OA#3HY
M+70X?[6MY-3NYIX[>VM5D.L/L,DTL:[MC;02VTXQ0!^\]%>-?\$\?AE\8O@[
M^P_\+OAY^T-\0=>\4^/++P=:2>,M;\3:G+>7LVIS+Y]RDDTK%W$<LCQ+D\)&
MHXQBO9: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HJGX@AU^XT&]M_
M"NHV=GJ;VDBZ==ZA9/<P0SE3Y;R1))$TJ!L$HLB%@" ZYR/R&^ _Q?\ VZ]!
M_P"#I*[_ &5?VC/VP=7\>>%=+^%UYJV@Z-9:<-'TFW6YLX) OV"&1T9XW,B+
M-(TDI4#+\D4 ?L+17*?'7XH+\$_@MXL^+_\ PC-[K;>&?#MYJ<.B:8A:YU*2
M&%I$M80 29)658U&#\SBOS*^*/\ P0U_X*>_MFZ#<?'C]I;_ (+)_$+P3\4=
M4B:]TSP5\.)+BT\*^%)6!,=C$D%U&\XCXC:Y&V1L;CYA&Y@#]8**_*#_ (-T
M/^"A7[:_Q ^,7QE_X)<?\%#]=F\1_$;X'7)-GXNN9O.N;VT2Y-M-%/-@&Y"N
M8)(IV'F21SG>3M!K]#OVV/VD-,_9"_9)^(?[2VIVHN6\'>%;N_L+#:2;Z]"%
M;2U4#DM-<-#$H[F04 >HT5X-^PQ^S-X\_97_ &!O!/P T[Q%8P>.+#PQ]HU_
M7-6T]KV"7Q%>.]YJ-U+%'-"TRO>W%P^T2H2"!O'6OSV_87^,7[<-M_P= ?%O
M]E']IW]KK6OB)H7@_P"#UQ=^'[*.S72]*@2[_L2[0IIT+&))(UN6A\UB\C!,
MESNQ0!^P5%87Q2\>67PL^&7B/XG:E837=OX<T*\U2XM;8?O)DMX7E9%_VB$(
M'N:_.+_@CMX:TO\ X+"_LF-_P4!_;+^,_C7Q3XE\8>*M6@M_!/AKXD:OHFB^
M!;>VNWA@L+:TTRZ@4S&%89VN9M\[":,[^[ 'Z=45^>?_  30_:1^-'@+_@J1
M^T=_P2A\:_$_7_B'X-^%^E:1XC\ ^+?%=^]]JVE6U];VLLFD7EX^9+O8UT/)
MDF9IMD3[W?("?H90 4444 %%%% !1110 4444 %%%% !1110 4444 %%%?#'
M_!?[Q/\ MM_"C_@GE\1_CW^R=^U1!\.T\'^'HKR[MM-\)K-J=^#<K'.J:A).
M1:+Y4@*F* 2J\9_>@, H!]ST5\J_\$/O&/B_XA?\$E_@1XW\?>*M2US6M4\"
M0W&I:OK%])<W5W*TDFZ2660EY&/=F))KG_\ @H/X!_;E_;/^,-I^Q9^RC^T)
MJ7P2\%Z;X<AUOXI_%C1+-I-7N3<S3Q6>C:6X>/R9"+:::>=7#1J]L <2%' /
MLJBOP _;^^ O_!4C_@W&UGPG^W/\ O\ @H9X^^-'PKN?$L&F^-O!OQ)U2XN4
M\R7<ZK-')++&4F"2(+F(12Q2%!\V^OW>^$GQ'T7XQ?"KPS\7?#4,L>G>*O#U
MEK%A'.,2+!<P),@8=FVN,^] '0T5\B^(?^,E_P#@L7H?AU/W_AW]F?X;RZS?
M%?N?\)5XCWVMJC9ZM!I5K>/QT&I(<\BO+O\ @X\\;?MT? __ ()S^/\ ]HW]
MEC]K1?A]8^$[?33?:9H?A<?VKJ$=SJ$%G,%U-YV-J%%PDBF"%)!Y3#S#O&T
M_0NBOGC_ ()(>)/$7C'_ ()=_L^>*_%VO7NJZIJ7P>\/7.HZEJ5T\]Q=3/80
ML\LDCDL[L2268DDG)KYY_P""@O[8WQ1^-7_!3_X3_P#!&/\ 9Z^*VK>!8_$V
MA7/BSXR>.?#%P(=7M-&ABG>'3+&?!-K-.T'SSIB2-)8BC#Y@0#]#:*_+#_@K
M7\)?BQ_P1T^"6G_\%*?^">7Q8\?1V7@/7["/XJ?##QI\1-7\0Z+XITBZN4MV
MF=-3N+B2WNEFEA'GPLI"R.QY7YOT6_9E_:!\!_M6_L\^"OVE/AC/(^@>./#5
MIK.F+-CS(HYXE?RI .!(A)1AV9&':@#N:*** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBJ?B"'7[C0;VW\*ZC9V>IO:2+IUWJ%D]S!#.5/EO)$DD32H&P
M2BR(6 (#KG( +E%?CU\!_B_^W7H/_!TE=_LJ_M&?M@ZOX\\*Z7\+KS5M!T:R
MTX:/I-NMS9P2!?L$,CHSQN9$6:1I)2H&7Y(K]6OCK\4%^"?P6\6?%_\ X1F]
MUMO#/AV\U.'1-,0M<ZE)#"TB6L( ),DK*L:C!^9Q0!U=%?D_\4?^"&O_  4]
M_;-T&X^/'[2W_!9/XA>"?BCJD37NF>"OAQ)<6GA7PI*P)CL8D@NHWG$?$;7(
MVR-C<?,(W,O_  ;H?\%"OVU_B!\8OC+_ ,$N/^"A^NS>(_B-\#KDFS\77,WG
M7-[:)<FVFBGFP#<A7,$D4[#S)(YSO)V@T ?J_17EW[;'[2&F?LA?LD_$/]I;
M4[47+>#O"MW?V%AM)-]>A"MI:J!R6FN&AB4=S(*^2+C]G7]N'X0_L7?!#_@F
M/^R)\2T\#^/?$_AR\UCXP_&BYTX7C>'AYD=SK%Q;1Y59;^\U+466$%@1&MPX
M93&'4 _0BBOP?_X*-?\ !-#_ (*D_P#!'WX2W7_!1[]CS_@K5\7/B(?!EU!>
M>/O#?Q U>XNEN[5Y4C:Y:*6>6&[C#.OF121[E0LZR92OU<_8Q_;Z\&?M)?\
M!-GPE_P4.^(%M#X8TC4/A]+XB\5Q[F:'3#:1R?;]I/S-$CP3%2>2@&>30!]"
M45^6_P#P2\M?'7_!<SP1XS_X*"?M?^/_ !_I/@;5_%U[HWP5^%_@SX@ZIX>L
M]"TNT(0ZA.^EW$#WE^\ID0R2LZH8FV*JLJIVG_!+;]N?XO>#_P!OOXT?\$8_
MVM/B+?>+O%'PM*ZU\+_'FMNK:AXA\,S)!-'#>R  7%Y!%=VP,P&Z4&4L,Q%F
M /T4HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BOAC_ (+_ 'B?
M]MOX4?\ !/+XC_'O]D[]JB#X=IX/\/17EW;:;X36;4[\&Y6.=4U"2<BT7RI
M5,4 E5XS^] 8!>]_X(?>,?%_Q"_X)+_ CQOX^\5:EKFM:IX$AN-2U?6+Z2YN
MKN5I)-TDLLA+R,>[,230!]545\:_\%!_ /[<O[9_QAM/V+/V4?VA-2^"7@O3
M?#D.M_%/XL:)9M)J]R;F:>*ST;2W#Q^3(1;333SJX:-7M@#B0H_YE?M_? 7_
M (*D?\&XVL^$_P!N?X!?\%#/'WQH^%=SXE@TWQMX-^).J7%RGF2[G59HY)98
MRDP21!<Q"*6*0H/FWT ?O_17/?"3XCZ+\8OA5X9^+OAJ&6/3O%7AZRUBPCG&
M)%@N8$F0,.S;7&?>OF+Q9=V_[1'_  6 TC2[F4/X7_9A^&4VNZG(/N+XH\0B
M2VME;/5H-*M;U^.0-20]Q0!]?45^6/C;_@F)_P %$?\ @K1ILO[4'[0O_!2?
MXD? O1?$JF]^&GP>^'"2VL7AW2G^>R?5&6>)KN_>,I)*K &)W9%=0-B>;?\
M!&;]K[_@H5^Q_P#\%4_%O_!#_P#X*%?%Z^^)\4.B3:K\//'>J7,ES=M%' MU
M&?/E)ED@FMC(2DK.T,T!C5BN: /V7HKF/B_X?^*_BCP1<:'\&?B3IGA+6[@[
M4U[4_#9U5;:,@AFC@^T0J9<D%6<L@Q\T;@XK\O/^#9OX\_M9_&;]H/\ ;)T#
M]KW]HG7OB-X@\%_$72]!CU/59BEO%]FFUB!_LMJO[FSC=H@WE1*J].IYH _6
MJBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***_&[_@XZ^+/_!0G
M]GCXT_L]7'A?]M*[T[X>?$#XN0Z7?^"?!N@G1F6**\M9(5N;Q;B6>\W1.Z2)
MNBA8H"(@&PH!^R-%%?F[^T%^Q#^WI_P5R^)7BOQ7XC_;P\<_ #X*Z%X@OM"^
M'W@OX;H]MJ?B-;.=[6?6-1N1)&QBFN(I3! 0R& 12#:S%G /TBHK\./V2/C;
M_P %'O\ @BQ_P6,\#?\ !,3]K7]IO7/C;\(/C,J)X&\2^)KF:XO+-Y6DB@DC
M:>222!TN(Q#-;^:\6R595P2!7[CT %%?GK\!OBS\5+OX5_M(?\%,?@GX%A\5
M>-OC#\3(O!_P1TVZ+"UN-+TNZ'A_2)I2OS)9F^?4=2F;(_<2NPQP:\.^/_\
MP;]_\%0?'_@V_P#CQI/_  7*^+.H_'&.W>_M+2VO[G2?#K7>-_V*VBMKE?L4
M);Y%=4V_Q&(9( !^O=%?G%_P;7_\%.?C[_P4,_99\6^"/VLX&F^)GP@\3)H/
MB+6'M5ADU.%T8PRSH@"K<JT4\4FT -Y2M]YFK+^,W[ W[?'_  5[\5Z_\7?B
M)_P4!\?? 7X2KJUW8_"WX<_#59+6[U+3H)7A36=4G$L9D:Z*&>.W(98X7BY5
MR^0#],:*_$?_ ()]?M$?\%&O^"3O_!930O\ @CY^VU^T3J_QE^'GQ,TM[SX=
M^,O$%S-<7ELIBN7MYTDG>26-3):2VTMJTCK&VV2,A?\ 6?MQ0 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% 'QY_P<!?\H:/V@_^Q#?_ -*(:G_X
M('_\H</V>O\ LGEO_P"C)*K?\' TL<7_  1F_:#:1PH/@5E!)[FY@ 'YFI_^
M"!<D<O\ P1N_9Z:-PP'P^@!(/<2R@C\Q0!]?5^<7_!>_P1JW[?EU\*O^"//P
MGG9]?^(_BRU\4_$34+==X\+^#=.D;S[^7LCRW#1Q0!N))(W3W'TG_P %#/\
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
M<42#LJHJJ!Z"@#3HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /R
ML_\ E<FNO^R #_TC2OU_K\?+.Y@_XC*;N+S5W?\ "A F,\[OL*-CZXYK]?[R
M\M-.M)=0U"ZC@MX(VDGGF<*D:*,LS,>   22>E %#QMXT\)_#?P;JWQ"\>>(
M+72=#T+39]0UC5+Z41PV=K#&9)9I&/"JJ*S$]@*_/G_@A=^S7XD\5?%'X\?\
M%>?B9X5NM%U#]I;Q<;SX?Z-J$!CN;'PA [BPFE4\I)=)Y4I4\;(86'WR*J>/
M?V^_V$O^"EGQ3N?A_P#$7]M#X4>'OV=O!6N!=5TK7OB-IEE=?%'5K:4,L3P2
MSJZ:'!*H8[@/M\J+@?9DS<?5?@[_ (*6?L*_$7XV^%_V:O@3^T;X1^('BOQ$
MMRT&D?#O7K35UTNTMK9YI+J\>VD9+6$;4B7<=S23Q*JD%BH!Y_\ \%"_^,@/
MVH?V>?V#K/\ ?V&L>,G^(_Q"@7YU&@^&VBN+>*9.A2?6)]*7G@B&08.#7US7
MR+^PW_QD-^W%^T1^VQ=_O],TS7+;X2_#Z5^=NGZ&7EU2:,C@K+J]W=1D]_[/
M3T%>L?MP?MR_L_\ _!/[X(W'QN^/_BRWLK=[E+'0-(^UPQ76MZC)Q#9V_G.B
M;V/5W98XD#22.B(S  ^?O^"^?CCQ-XG_ &+G_8.^"NF)J_Q5_:.U.+P;X(T,
M,?EMS)'+J>H38!,=K;6:R-)+C"&2//6N'_X*M? _2_V!?^#;'X@?LW?"B_EE
MM/!7PHTWPV+[;L>\26[M+6[N& /!F\Z>1@./WC#I73?LF_M*?L(>'?'&L?MG
M_M<?\%#_ -G[4/C)XLTQ;.>.R^+^CRZ?X)T17\V/0=.=K@9C5OWEQ<X5KJ<%
MR%C2&./TKXOZ[\!_^"S/_!/SXV?!O]G7QK#KGA_7]-U7PEH_C*-0=,OM5CM8
MY([FUE!/VBWANGC1I5 5G@E"%@ Q /.O^#9?0K+0/^"'WP+M[)%'VBPUJZE8
M?Q/+KFH.2??YL?ACM7QE\<M5O/"__!ZG\+#X=8J=9^'Q@U>-#Q,A\.ZI][UP
M(HF^L8]*^FO^#6+XE:A=_P#!+RW_ &7/'6GS:5XW^!OCO7?"?C#P_?C9=V$[
M7\UZ@D0\@8NFB!Z$P.!G::\@_8U^$=[^VY_P="?'7]OK0(?M/P^^!6DQ^#=%
MUV/YH;KQ =,BL;FWC;[K^4'U'?M)V[H<_P"L% '[!4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% 'QY_P<!?\H:/V@_\ L0W_ /2B&I_^"!__ "AP
M_9Z_[)Y;_P#HR2JW_!P-+'%_P1F_:#:1PH/@5E!)[FY@ 'YFI_\ @@7)'+_P
M1N_9Z:-PP'P^@!(/<2R@C\Q0!]?5^<7_  7O\$:M^WY=?"K_ ((\_">=GU_X
MC^++7Q3\1-0MUWCPOX-TZ1O/OY>R/+<-'% &XDDC=/<?2?\ P4,_X*/?!7]@
M3P;I%GXK\4>'7\>>-;LZ?\/O"NO>)K?2H;^ZQ\UQ=74[!+.QA!#S7+\*N%02
M2O'&_E7[)G[1_P#P3-_9=T'Q'\5OBQ_P4X^!?BKXH^.KB/4_B?X_D^)VD1_;
MYT3;#9VL?VEFM["V0^3;6P)VKEF+RR2.P!]C:9IW@WX3?#^WTFR%OI'A[PSH
MR0PAWVQ65E;Q!1ECT5(TZGLM?,__  1]T?5/&7[.OB#]M+Q=I\L&N?M%>.]0
M\?E+I#YL&C3;+70[<D\E4TFUL2!P TCX')SQW[>G[6/AK]K;_@G-HOAO]F+7
M-13_ (:?\86_PV\#ZQ-:F"2?3KV[F@U#58D/SB :5;:A=1N0&*>4Q52V*^T?
M"/A/P]X#\)Z7X&\(Z5%8Z3HNG06&EV4 PEO;PQK''&H]%15 ]A0!H,RHI=V
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
M^-G[.7PB_:+^!>J?LV_&70;[6O!VN:='8:QIK>(;Z":]MD9&\N2ZAF2X<-L
M?,F9065]P=@?DC_B&7_X(<_]&(Z?_P"%MK__ ,GU]WT4 ?-O[&__  2&_P""
M<_\ P3]^(6H_%;]D']F>P\&^(M6T=M*OM6BUS4;V1[-I8Y6A'VRXE" O%&QV
M@$[!DX%>M_LY_L]_#+]E?X-Z/\"?@_IEQ:Z!HIN'MEO+Q[B>66XN);F>:65R
M6DDDFFED9CR6<FNWHH I^(M"LO%'A^^\-:E/>16VH6<EM<2:=J,UG<(DBE6,
M4\#I+"X!.V2-E=3AE8$ U\OZ-_P10_X)Q^'?CE<_M.:#\)/%EG\1[QW:\\>6
MWQC\5IK%P701MOO!J?G."@"$%B"H"]!BOJRB@!EM;QVMO':Q,Y6- BF21G8@
M#'+,26/N22>]?/OB#_@E_P#LDWWQ8U_XX> ]&\6?#WQ/XME\WQ=J'PO^(6K^
M'(]=EY/G7=O87,4$TV2Q\YH_-)9B7.37T+10!P7[/_[,7P+_ &7/#5]X6^!W
M@&+1XM6U%]0UR^FO)[R_U>]? :ZO;VZ>2XO)R  99I'?  S@ 5WM%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 5Y!^UC^PE^S/^W#X9;P/^T]X5U[
MQ'H$L,<5UX<@\>ZUIVFW823S4,]I97<,%PROA@TB,P*K@_*N/7Z* /(_V3_V
M&/V:_P!B#PLO@/\ 9C\+:[X>\/Q0M':>';CQYK.I:=9JTAD;[/:WUW-#;EG)
M8M$BDEFR3N.?,OVJ?^")_P#P3'_;<^,-Y\?/VI_V9AXP\67UK!;3:I?>,M:B
M"00H$CBCAAO$BA0 $[8T4%F=R"SLQ^J:* /A#_B&7_X(<_\ 1B.G_P#A;:__
M /)]?3UE^QM^S[I/B+X3^(-$\&-8I\$='NM-^&NF6MY(MII,$]E'8MB(DB1U
MM8S"CN2RK))@Y<FO4:* "O%_VN/^"?7[*O[=>C_\(O\ M4^#-=\4:(8H4E\.
M#Q_K=AI<QBD:2.26QL[R*WEE5V)$KQE^%&["*![110!Y9^RS^QC^S[^Q=X-3
MX=?LXZ!KVB>'H8%ALM OO'.L:I8V$:LS;;:"_NYH[4%G8GR53<3SG I?CW^R
M/\._VE;DVWQ3\9^/&T66T%O>>&/#_CW4='L+U 6)$ZV$L,DH8-M9&<HZ@*RD
M9!]2HH YCX.?!3X0_L\_#S3_ (2_ OX::)X1\,Z5'LT_0_#^FQVMM#GDD)&
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
MK[)<J#ME$5Q>21LRYR-RG! (P0"/L2BB@ 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"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**\1_;7_ ."B'[*'_!/[PKIGB#]H_P"(K6>H>(+K[)X4\):-8R:AK7B"Z)"B
M"RLH TLS%F1=V BLZ!F7<,@'MU%?)NB_\%%/VI]9TI?'G_#G;X^6_A5QYBW-
MSJWA:/6!!C/F-I+ZN+@-ZQ?ZST4GBMC]DK_@K-^R1^VU^T)K?[-7P#U3Q!<^
M)?"WA7^V/%UCKWAF[TJ?0Y1=BV;3[F"\CCD6Y5SEE"E5&/F.X4 ?35%%% !1
M110 4444 %%%% !1110 4444 %%%?*/QP_X*^_L[?#WX^7?[(_P&\!>-OCG\
M6=-0MK?@?X2:3%>G0AG;G4KVXFAL[$!CM823;U) 9 64$ ^KJ*^2O$?_  5(
M\3? 71I/&G[<?[ GQ=^$/A*%0][XY;^RO$^DZ9'@9>];0KRZN+5 3@R/!Y0Z
MEP*]>_8G_;%^$?[>W[.NE_M0_ F>ZF\*:YJVKVFCW-[ 8I+F*QU*YL/M&QOF
M1)?LWG(K .$E4,%;( !ZO1110 4444 %%%% !1110 4444 %%%% !14:W5J]
MT]DES&9HXU>2$.-RJQ8*Q'4 E6 /?:?0U\N?MY_\%'O'7[%_[17P+^!7A7]C
M/QI\2;/XQ>*CH^I>)_#DC+;^&4$MO'YL@6"02MMF:4H[P*(X)&WG:0 #ZGHH
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@ HHKA/VG/BYJ/P&^ ?BGXP:1I$%_<^']+:ZAL[ERJ2D,HVL5Y Y[5T8/"UL
M=BZ>&HJ\YR44MM9.RU]6<V,Q=# 82IB:SM"G%RD][**N]/1'=T5^8G_#^CXN
M?]$$\.?^#*X_PH_X?T?%S_H@GAS_ ,&5Q_A7ZC_Q!+Q$_P"@:/\ X,I__)'Y
M9_Q''PY_Z"9?^"ZG_P B?IW17YB?\/Z/BY_T03PY_P"#*X_PH_X?T?%S_H@G
MAS_P97'^%'_$$O$3_H&C_P"#*?\ \D'_ !''PY_Z"9?^"ZG_ ,B?IW17YB?\
M/Z/BY_T03PY_X,KC_"C_ (?T?%S_ *()X<_\&5Q_A1_Q!+Q$_P"@:/\ X,I_
M_)!_Q''PY_Z"9?\ @NI_\B?IW17YB?\ #^CXN?\ 1!/#G_@RN/\ "C_A_1\7
M/^B">'/_  97'^%'_$$O$3_H&C_X,I__ "0?\1Q\.?\ H)E_X+J?_(GZ=T5^
M8G_#^CXN?]$$\.?^#*X_PKN_V8_^"QOQ*^//Q\\+?!_5_@WH=A;>(-46UFO+
M:_F9X@58[E#<$\=ZYL9X.<>X'"5,36P\5"$7)OVD'I%7>G-V1T8/QF\/\?BZ
M>&HXB3G4DHQ7LYJ[DTEKR]V?>GB#7M(\*Z#?>)]?O4MK#3;.6ZO;F3[L4,:%
MW<^P4$_A7X<_\&\.O:S_ ,%=?^"JWQZ_X*X_M$VKZA)X)%KHWPITC4/WD/A^
M"\>Y\I(%Z(\%I!L+#&Y[Z:3&YB1^T?[07@+4OBI\!?&_PPT:<17GB3PAJ6EV
MLC-@))<6LD2DGM@N.:_%3_@R8\767A[PO^T7^SUXD@;3_$^C^)-(O[K3+M=D
MX39=VTH*'G,4L(5O[IE4'K7Y>?JA^[5>$6O[$?A+P[_P4@/[?_@NTT_3[_7O
MA->^$/',4:E)M4G2_P!/N--NL*NUFCBAO87=CN*FV49"<>[TC21HRH\B@N<(
M">6.,\>O% 'S]\=?^"B/PX^%_P >8_V2OA-\,?%GQ:^+/]D+JVH> _ $=GYF
MC6#$!+K4;N^N+>TL4<L-BR2^:^Y2D;!@3QO[/?\ P5_^!GQ6_:KG_80^.'PL
M\:_!7XSK9_:],\#_ !(MK15UVWVLWFZ=>V5Q/;7BX1_NN&/ER;0WEOM^(_\
M@U'^+NI_M&_%_P#;-_:%^)$QG\=>*/BM87.NO.<RP6K?V@;:W&>5CC/FQHO0
M+& .%%8__!Y'X:G^%_PT_9X_;B^&UR=*\?\ @3XI'3]#UNT&V=!) U]%DCEA
M'-8*R@Y ,CXQO.0#]4?VR_VU/V?/V"_@M/\ ';]H[Q;)INDB^BT_3+*QM&N;
M[5]0FSY-C9VZ?-//)M;"#@!69BJJS#PG]HO_ (+,>#/V)-%\-_$/]NS]D3XJ
M_"OP-XJNQ:6'C2]M],U>WT^Z:)I4MM0ATN]N)[65D1BJJDJDHPW94X^6O^#H
M'X:_'F^\%?LP?MT^&OA_JNL^$O@;\28_$GQ/\/:7;M-):V[26$ZW4D8_Y9P_
M8YXF<\)]I!.%+$=#_P '#O[3_P"S/^V1_P $C+GX*_LP?$C0OB=XW^,.N>'H
M_A1X:\&7T>HZEJ,ZZE;74LL=M$6E14MHIU=F51&7"/M)Q0!]1/\ \%I?V$W_
M &;O$G[5FGZS\0;KPCX5<KJDZ?"'Q#'/Q!Y^]8Y;)#Y0CY:=ML*9&^1<UYAX
M+_X.'/V8?BK^R]HW[0_P0_9S^,OQ!UKQ$^H2Z7\+? /@HZQXA@L+6\FM/[0O
M8[61X;&W=X'VM)+EL,$$A1]OHGB?X.^.O@5_P0BU?X"_%V_2^\1^$OV4+O0_
M$<PF\U9+NV\-O!, _P#RT4.C -_$!GO7AG_!I;X9\.:+_P $7O!6MZ/H-G:W
MFL>*-?GU:[M[94DO94U&:%'E8#,C+%'&@+9(5% X % 'TS_P3%_X*G_LU_\
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
MTS1X5M[>[^!5E<7$$0PKRO;>$Y&<C^\79V)]7;UK]A: "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 **** "LOQIX+\+?$3PM?>"/&^B0:EI.I0
M&&^L;D$I,A(.UL=N!6I15TZE2E44X-J2=TUHTULT^C1%2G3K4W":3BU9IZII
M[IKJF>+?\.ZOV(O^C;O#G_?E_P#XJC_AW5^Q%_T;=X<_[\O_ /%5[317M_ZT
M\3_]!U;_ ,&S_P#DCP_]5.%_^@&C_P""H?\ R)XM_P .ZOV(O^C;O#G_ 'Y?
M_P"*H_X=U?L1?]&W>'/^_+__ !5>TT4?ZT\3_P#0=6_\&S_^2#_53A?_ * :
M/_@J'_R)XM_P[J_8B_Z-N\.?]^7_ /BJ/^'=7[$7_1MWAS_OR_\ \57M-%'^
MM/$__0=6_P#!L_\ Y(/]5.%_^@&C_P""H?\ R)XM_P .ZOV(O^C;O#G_ 'Y?
M_P"*H_X=U?L1?]&W>'/^_+__ !5>TT4?ZT\3_P#0=6_\&S_^2#_53A?_ * :
M/_@J'_R)XM_P[J_8B_Z-N\.?]^7_ /BJU/!?[#W[)GP[\4V/C?P1\"=#TW5M
M-G$UC?6T3AX7 (W+ENO)KU6BHJ<2\1U:;A/&U7%JS3J3::>Z:OJF73X8X;HU
M%.G@J*DG=-4X)IK9I\NC05^5?[:O_!'#]KO]G+_@H#-_P5N_X(QZYX>A\;ZU
MYO\ PLSX0^)[D6NG>*EF96N3%*2J*9W1)7CD:,"9/.64-\E?JI17B'N'Q/\
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
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 **** "BN=^*7C?Q#\//!T_BCPS\)?$7C:Z@8 :!X6FT]+R53G+*
M;^ZM82!CH90QSP#7R5^R'_P7F_8Q_:Y_:_U;]A"+P=\1?AO\4=)2<'PO\5/#
MMOIDUW/"-TMM#Y=U-NF$>90AV[XU+H6 - 'VO139G:*)I$A:0JI(C0C+'T&2
M!D^Y KY)O/\ @K5IUA^U]:_L*7'[!'QZ_P"%E7OA5O$MOI"67AIK9M(60Q->
M&\&M_9EC$H\LYD#;RJ8W,H(!]<45%8W$UW8PW=Q8RVLDL2N]M.4+PDC)1BC,
MI(Z':Q&1P2.:\3_;R_X*"_L^?\$Z_A[X7^)?[1&M26FG>+/'NE^%=/:$IF.:
M\E(>X?<1B&"%)9Y&&2%CP 6900#W&BCKTJMK.LZ1X=TBZ\0>(-5MK&PL;:2X
MOKV\G6*&WA12SR.[$*BJH)+$@  DT 6:*^)O!W_!9>\_:$M]1\;?L.?\$]OC
M1\9OA_I=]-:O\1M#CTC2M-U1X7*2MIJZI>V\VH(K!EW)&!N4@9QFNH_9&_X+
M'_LK_MG_ +3L_P"Q[\-/#/CS0_B)HWA+4-=\:>$_'7@^XTB^\,K:W5A;K;72
M3#8\LIOE=/(>5-L3%F&Y-P!]8T5\9_\ !1;_ (+8?!/_ ();RZ?J'[5W[,/Q
MBM= UK5)K#0/%>A:9HM]I^HS1KO(79J@FA+)EU6>.)F ;"_*V$\.?\%E;3Q)
MX,B^(D/_  2^_:_@T6:U2YANY?@Y$\DD3#<'6WBOGG8;?FXC/'U% 'V;17S)
M^Q?_ ,%A/^"?'[>OB^[^%_P ^.\/_";:>91J'@+Q/IEQI&M0-'GS5%K=HC3%
M,'?Y6\)_$17TW0 454\0:_HOA70;WQ1XDU2"QT[3;22ZO[VYD"1V\$:EWD=C
MPJJH))[ 5Y)^P)^W-\%O^"C/[,6B_M5? 6:[&@ZS=WEJ+3445+JTFMKB2%XY
MD4G8QV+(!GE)$/>@#V:BBO'/VT/V]_V6?V ?AY:_$3]IOXE1Z.FJW?V/P[HM
MG;27>J:Y=G 6VLK2$-+<2$L@.U=J[UW,H.: /8Z*^.+G_@J#^TW#X:/Q03_@
MC'^T<_@X)YQN@_AS^VO)QG<-%_M7[87Q_P L]N_M@'BO7_V)/^"@G[*G_!0K
MX=77Q&_9@^)2:LNE77V3Q'H5];/9ZKH5UR#;WEI*!) ^5< D%'V-L9@": /:
M**** "BOD7X@?\%C?@1-\<M8_9>_9$^$GCS]H3XA>'7\KQ-I7PIT^VDTW0)<
ME1'?ZK>SV]E;MN5EVB5V#*RE058!?%W_  5CL_V<M);Q3^W_ /L9_%;X'^&E
M8!_'&I6MAXCT.W+<(MQ<:#=7DEH68A09HD0L0 Y)% 'US17G/[(_[37@/]LO
M]F_PE^U!\+[6\A\/^,],^WZ3'J$8280^8Z#>H)VD[,X[9Q7HU !1110 4444
M %%%% !1110 4444 %%%?+'QW_X*/>.O@S_P4N^%?_!/W2OV,_&GB31OB/X?
MFU*]^*NFNPTW1&0W(,3H(&639Y"M*S31&-;B(A9"P! /J>BH[JZM;&UDO;VY
MCAAAC+S32N%5% R6)/  '))J2@ 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@ HHKE_C3X^O/A;\*]<^(-AI\=U-I-D9X[>9BJR$$#!(Y'6
M@#J**^*O^'I?CW_HE>C_ /@;+1_P]+\>_P#1*]'_ / V6@#[5HKXJ_X>E^/?
M^B5Z/_X&RT?\/2_'O_1*]'_\#9: /M6BOBK_ (>E^/?^B5Z/_P"!LM'_  ]+
M\>_]$KT?_P #9: /M6BOBK_AZ7X]_P"B5Z/_ .!LM'_#TOQ[_P!$KT?_ ,#9
M: /M6BOBK_AZ7X]_Z)7H_P#X&RUU'P5_X*&^,OBE\5-#^'U_\.],M8=6O1!)
M<0W4C-&""<@'@]* /JVOP2_X*]?\$P?C?^W+_P %)?VG_P!I#]D3Q5JMA\8?
M@%H7PWU_P7I^DS>7+JBRV.HO<1P,N&6\0V-O) 0?F:-H\9D5D_>VOC/]CW_E
M,[^VC_V*/PK_ /2#6Z .4_X()_\ !9CPQ_P56_9V?0/B+);:1\:O =O':_$/
MP[L$)O #L75+>/C$4C##H!^YERA 5HF?J=31/^(AG19-@W?\,8ZH-V.<?\);
M8<5\)_\ !=7_ ()U_''_ ()U_M-V?_!>K_@E]9'3M5T._-Y\9/"-C 3;7,3G
M%QJ#PICS+:=25NT&"K$7(PWF2)[A_P $Y_\ @HA\#_\ @IW_ ,%:_!/[3WP3
MO/)6[_8QU2T\2^'II@]SH.J)XJTXSV4V,9V[@R/@"2-T< ;L  _4JOQ._P""
MZO[,?Q(_X+(:Y^T!<_"S5[V3PU^Q[X+6U\+6-D=T/B'QE-Y&I:S%P/WC6^EQ
M0VPC^\+BX&"064_JM^W?^U5H/[$G[(?CW]I_7K+[:WA709)M)TL EM3U*0K#
M8V2A>2T]U)!",<_O*^.O^">-G_P5)_8M_98TGX.:Q_P2WL_$_B._O[_7_'GB
MN[^/&DP3:_KFHW#W5[=RQ_9FVEI)-@4LVU(T7)Q0!W__  ;Q?MY_\-^_\$N_
M GC;Q%K/VOQ?X*A_X1'QJ9)-TCWEDB+%<.3R6FM6MYF;H7DD ^[7I7_!9#X0
M?&/X^?\ !+GXX?"'X VUU<^+=;\!7<6EV%D3YU^%*R36D8'WGFA26$+_ !&4
M#O7Y,_\ !%SQE\2_^"3O_!=[XB?\$^/CO\*S\-_"O[0%NVL>"_";Z]#J%OI=
MQON+G38XKJ(+'*GE?;++<JJ7ECB4\KBOWA^)'Q*\$?"'P;=?$'XCZ_'I>C6,
MD*7=_+$[K$99DA3(120#)(@)Q@9R2 "0 ?DI_P &YO\ P7=_8V\7?LN_#_\
MX)Z?'?Q#8_##XE^ M)B\/:;;:^RVFG^(4A)2-X9WPD=VW D@E*N\I)CW[BJ?
MHIJW[&V@'_@I!X>_;X\.V&G6NH1?!W6O!/BF8 K<Z@LVIZ3>:>V N&6(6U^K
M,S9_?1@ @<?,'_!5S_@VT_8?_P""EMQJ7Q6\.V9^%_Q6O TLGC7PU9*UOJDY
MZ-J-GE4N"3UE0QS'C<[A0M?$/_!)7]K?_@I+_P $B?\ @I_X:_X(L?\ !1#Q
M3-XL\%>,$6V^'VL3WTEXED)%E%E<Z?<R 2M92R0M;-;R >2XRHCV.L@!Z_\
M\'L"J?\ @G'\,G(&1\;;4 _]P?5*_63X _\ )"/!/_8HZ;_Z2QU^3G_![!_R
MCA^&?_9;K7_TSZI7ZQ_ '_DA'@G_ +%'3?\ TECH _(__@[._84T/PC\'?#W
M_!77]G19/"'Q6^&7BK3(]>\3Z ?LUQ>V<LRPVMS(Z8+7%O=&W1)#R8YF5B0D
M87]&?^"4W[9-S^W_ /\ !//X6?M::K;PPZKXJ\.8\016ZA8UU.UFDL[PHO\
M"AN+>5E7LK*.>M?+/_!V9\9?"7PT_P"",'CCP'KM_$FH_$'Q'H6BZ';LPWRS
M1:E!J,A ZD+#8RY/0$CU%>D_\&X'P1\7? /_ ((P_!/PCXZL9;74M3TB^U]K
M:92IC@U'4+F]MN#R,V\\+$>K&@#4_P""S7BSQ+\1_AEX&_X)O?"[69[/Q5^T
MSXL'A>]NK-L3:;X4@3[5XAOAVPMBIM\'JUZ@ZFO@?_@W=\5^(_\ @F5_P5-_
M:"_X(??%;6)_[,N=8F\1_#":];'VLQ1+(&4=#)<Z8UM.V.%-BXSFOH7X;_&;
M]K[X_?\ !3?XK_MY_L^?L4P_%GP-X*M)?A+\+M6N?B79:'#;FRN?-UV\ACGB
ME\_S[X) LZ;08[+;ELD#XN_X. ;K]O'X)_M0_!+_ (+3:O\ L,Q?"W4?AGKU
MCH^N7]C\2K/6TUA5F>>UAG6VAC:%&C-Y;/(P8,MQ$F5PH(!_0C7X0_\ !&#X
ME7/_  6:_P""]?QC_P""@WQCD.L^&?@UI36?PAT6[.^WT:.XNI;>PF1#E1)]
MG@NYF./]?<&0$%%Q^V?P;^+/@/\ :-^"GAGXV?#;5?MOASQKX;M=7T:[4@,]
MK=0+*A."=K;7 (Z@@CJ*_";_ (,Z-,OOV<OVV/VJOV-_B)%]D\6Z7;6"75C,
M-LF=(U"]L[D@'G DO(O^^A0!_0)7X)?\%FOB!>_\$6_^"^_PE_X*#_!J0Z-X
M6^,FEI%\6=%M?W=OK"0W4=OJ3N@PI<V\MI<*<9^T1>8<EFS^]M?@3_P>*>%]
M2_:3_;&_9+_8_P#AO#]J\7ZX=5@M;.)=S_\ $TOM.M+9B!_#YEK-STPC>AH
M_?8$$9!K\W?^#HO_ (*&^.?V#/\ @F]/HWP=\03Z5XT^*NMCPQI6JVDI2XTZ
MR,,DM[=1,.5?RD6!6!#(;H.I!0$?H]9VL5C:164.=D,:HFXY. ,#)K\4?^#V
MOX3^*O$7[(GP=^,FEV<LNE^%_'U[I^K-&I(A:^M%:%VQT7-FR;CQN=1U84 ?
M>_\ P0M_8N\$?L/_ /!,3X5_#WP[H4-OK7B+PO9^)O&E\L8$U[JU_ EQ*9&Z
MOY2NENA_N0)[U]4^,?!WA7XA^$M3\!>.O#UGJ^BZUI\UCJVE:A LL%Y;2H4D
MBD1N&1E8J0>"#7G?["7Q*\-?&/\ 8G^$?Q3\(7<<VFZ]\-M$O;5HF!"A[&$E
M#CHRG*D=05(/(KU:@#PS]B/]GGPW_P $[/V*M*^ _B3QII\'AGX=?VW):ZU>
MWVR&ST/^TKRZM6N)90H5HK*2$2L?E#QN02H#'RF?_@K])XL^%=[^TE^SI_P3
M^^.'Q/\ A/8+-,/B!X:L-)MEU2UB9A)=:=IU]?P7]["-IPXMU#\E-P!->"_\
M'=GQO\=_";_@D'?:!X!U"6"+QW\1-*\->(9[5R&6P:*ZO)$+#D*[V44;#^)9
M&4\,0?O3]B6Q\*:9^QE\)-.\!PPQZ'!\,M!31TMP BVHT^ 1;<=MFW% &#^R
M5_P4/_9._;>_9H?]K']G3XCMKGA.TBF_M=(M.F:_TN>% \MM/:(K3+.JD$(J
MMO#*T>]64GP#X3_\'#'[!_QD^,OQ*^$'A32?B!#+\,K2,7TNI>"[F"]UK4GN
M#;II>GZ61_:$]V65OW+01N-K$J%1F'QQ_P $7-(U3]F?_@Y7_;)_9$^&<36O
MP^U'1KOQ+-H]L-MM9W?V[3Y[;8H^5 B:K=1*H_A('1>.G_X)*>&O#TO_  <Q
M?MR:S/H=I)>6-G$;*[DME:6W\Z>V,NQB,IOP-V",X&: /I/]GK_@X:_91^*_
M[6%W^QO\=_@C\5/@'XO_ +)N-4TB/XW>'(=%BO;.&&2=Y&8SM]G_ ',4L@,F
M(V$3 2%L*</XQ?\ !RG^R;\!OB%H5O\ %3]E[X^Z%\,_$>K+I^C_ !NUOX9S
M6/AN^=LE9[=[ATGG@V ON6+>44LL; 9KP/\ X+O^#/"/B+_@N_\ \$_H_$/A
MFPOX]2\2R6VH17UHDJ7,,>I6KQQNK@AE5I'(!Z%B:]M_X.R-.L;W_@BA\0+F
M[M4DDL_$OAZ:U=UR8G.J01EE]#L=U^C'UH ^HOV\?^"FW[*W_!.GX,CXY_M!
M:OXAN-&F@CEL3X4\,76I_:A(0L0\Z)/LT D) 1IY8D<D ,2<5\P_'7_@YM_8
MQ^#?P=\*?%7P_P#!'XJ^.)M?\'Z=XF\0:3X/\/17(\'V5[ L\"ZK=&86]M.T
M3JXB#N=I#-M5D9N:_P""HT\NI?\ !J1<W=^YFEE^ O@661Y.2SF71VW'WSS7
MT9_P0Y^&WP_\,_\ !'OX#:%H'@O3+6RUSX7:;?:U:Q62!+^YNK96N)9AC]ZT
MA8[BV<C Z "@#T/_ ()Z?\%&OV7_ /@IS\!(_P!H+]ESQ3=76G1WC66LZ/JU
ML+?4='O H8V]S$K,%;:RL&1G1@<JQP<8?Q'_ ."DOA"U^.?B']F#]F#X%^,_
MC=X_\'V\,OC72O DFG6]CX:,H+0PWVHZE=6UM%/(%8K;H\DV%)9% )K\K/\
M@C1HNI?L ?\ !7?_ (*"_ WX&Z4W_"%^#?"&IZ_HV@QDF"*:UN?/TZVP/[D5
MW/".Y537OW_!G=XE7XA?\$[/B3\4_$6KMJ?B_P 2?'W6;WQAJ]T^ZYO+J2PT
MV7S)&ZG/F,_IN=R.2: /L/\ 8W_X*U_LZ?M=?''Q-^R7J7A/Q;\,/C+X/0R:
M]\+/B3IT-IJ7D@*QN+9X)IH+N':ZN'BD)*,K[0C!CV?[0?[<GAGX.?&O1/V7
M/AU\)_$_Q,^*6O:!-KT'@GPB]E"]AH\4PA;4KVYOKB""UMS,?*3+F223*HC8
M8C\O?^#D+1]5_9W_ ."O7["_[8WP7B:T\:Z[XO?P_?R60VR:A;6NI:<J6[XY
M<21:K=P-W*2;<XQCU_\ X*]_LH_\%3/V>_V^M(_X+#?\$L=*LO'.H6OP^C\*
M?$3X77L)GFU'3XKAY\Q0AD:XC8F,F.%UN$DA5D$@D=5 /L/]G7_@H_H?QU_:
MPUK]BKQ5^S1\2/AQX_\ #G@L^)M9L/&]I8?9FLC=0VT4EK<V5W<17<<CR28D
M1L*875MK@J.,UG_@MQ^R1;?\%#O!G_!-'P]X9\>:AX^\87%PGVV[\(W&F:=8
MQ16US/YIDOA#)<H_V9U22WCDB8YQ)\I%>._\$C_^"T?[)G_!4C]H]].\<?!;
M5?A5^TCX1\'W^C:AX4UN9F6\TXW5M-=QV\K+&TC136T;F":-)8@TFW>OFL/(
M/^"B4$2_\':7[&]RL8#O\+KM6;') 7Q$0/\ QX_G0!H_\'.O_!3#X_?L\>!_
M#/[)GPJ^ ?BZTT'QUXNTRQ\4_$F2U1+34(!)%=-I&F_.&FFE5=DKL%14#Q#<
M78Q_HS\#/VM;3XM> O$GQ)^(WP$^(7P?TOPNC3:C-\7=.LM-#6RQ-++=*T%W
M.@AC53O=V7;CTYK\W/\ @[P_Y)#^S/\ ]G 6?_I.]>M?\'8'Q2\9?#3_ ((T
M>,K'P?>S6R^*?$^C:)J\UNY5A927/G2)D<A7\A8V'=9&4\$T >F?%S_@M'8?
M#GX-7'[5_A+_ ()__';QE\%+*V^V7/Q1T/2=*AAFT\<G4;?3KJ_BU"2SV?O!
M</;QQF/]X&V8<_2/[)O[6?P%_;>^ VA_M)?LU^.X?$/A37X6:TNXXVCDAE1B
MLD$T3@-%,C JR,,C&1D$$^%:)^R5^U5\7O@3::'X?_X*:S7?@GQ1X2C@L8+3
MX/:$()M*N;4*BIM& AA< 8[$4[_@C_\ \$J_ ?\ P2.^#OBK]GWX<_'S6_&V
MGZWXF7798M;MH(7TZ=[>.!@J1$X#K!&<GKLH ^NJ*** "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@ JEXC\.:'XNT.Y\->)=-CO+"\C\NZM9AE9%]#5V
MB@#SC_AD3]FG_HCFC_\ ?IO_ (JC_AD3]FG_ *(YH_\ WZ;_ .*KT>B@#SC_
M (9$_9I_Z(YH_P#WZ;_XJC_AD3]FG_HCFC_]^F_^*KT>B@#SC_AD3]FG_HCF
MC_\ ?IO_ (JC_AD3]FG_ *(YH_\ WZ;_ .*KT>B@#SC_ (9$_9I_Z(YH_P#W
MZ;_XJC_AD3]FG_HCFC_]^F_^*KT>B@#SC_AD3]FG_HCFC_\ ?IO_ (JKOAS]
MF?X"^$=<MO$OAKX7Z99W]G)YEK=0QL&C;U'-=U10!2\2ZK?Z%X>OM:TOPU>Z
MS<VEK)+!I&FR0)<7KJI(AB:XEBB#L1M!DD1,D;F49(^#?V6;?]O7P)_P5#_:
M _:4^(W_  3M\8:?\/OB[I?A+3_#EY;>-_"T]_8'1X+F!I;RW750%23[9*_[
MIY641*-K%CC[_HH @U32],UO3+C1=:TZ"\L[R!X+NTNH5DBGB=2K(ZL"&4@D
M$$8(.#7YF?\ !.C_ ((>7'_!,?\ X+/_ !"_:'^!&FI_PI'X@?"/48-&MOM*
MF3PWJLFK:7.VEE6.]X2D4LD,@!PB-&YW(&D_3JB@#\\_^"E&A?\ !0[]HK]K
MWX*>&/ /_!/O7O$?P*^%WQ+A\6>-[EO'GARUN_%-Y9JXT]K6VFU%3]G@E87.
MRX,33.J!DB\L,?T \.ZI?:WX?L=9U/PY>:/<W=I'-<:3J+P-<63LH9H93!))
M$70DJQCD=,@[688)N44 ?CQ_P<5_\$^/^"AG[</[3?P:^-/_  3[_9)U1/%O
MP=O)[A?B1?>,M L(KTB>UNK%;:.6^\]A!/'.V98XL-*V%<-N'UA^UUH'[:?[
M=?\ P2,^)/P<\7_LJ:G\./B]XE\)V^EIH%QXFTV]LY=1DEAWSVMU8W4Y%LC
MMNE6.154_*V,G[7HH ^'O@C^UO\ \%4/V</AMI?PV_;I_P""<WB7XF^(M*L4
MM&^(WP \2:1J-GKSHH'VB:SU.ZL+BTD8 %SL9&8LRA ?+7S?X7?L*?M5?M_?
M\%5/"'_!4S]N+X(P?"7PG\(] ;3_ (1_"VZUNVU'6;ZY9IF_M+4Y;5GA@VM.
M72!'9E:.,-C8YE_2FB@#\G/^#EK]D#_@H5_P4]^#?A']F/\ 9+_8KUJ]L_"_
MCQ]=U+Q9KOC/P]8VMX([2>VA6UC;43.RN+F1R9HX678HVDL=OTE\+_VJ?^"H
MOA+X0:'X-NO^"->LKKFDZ+;6($_QV\,BP=HH53>TR2O*JDKV@8C/0U]HT4 ?
MEAK7_!%G]K[_ (*??M9^'OVK/^"TOQ*\))X-\%S&3P-^SU\-[FXN=-MU+*S"
M_O)DC,K.8T\[RU8S!54/$BB.OLO_ (**^./VSO 7[,^L>#O^">W[--YXS^(.
MM:)<Z?X<OX?$&DZ7IWAJ4HL:74QO;J)W*!R\4<,<BLT.US&""WT)10!\S?\
M!(SX9_$3X!?L'?#S]FWXG_LS:W\-=9\">%K/3M7@U37-*U"'5M1*F2]O8)M/
MNYRPEN6EF8S+$VZ?A3@FL_\ X+.?!3XA_M0?\$\OB-^R]\+_ -FS5?B3K?CO
MP_-8Z/:V6LZ78V^EWZ,DUI>W$NH74&$CG2.0")9')CP0H.X?5-% 'YJ?\&\W
MPT_X*E?L4_LWZ?\ L.?MX_LA:C9Z'H&HW+^"_'>E^-]"OX+"RF+SM9W<,=\;
MC"SM)Y;Q)+Q.J%46/<=C]NS_ ()%_&/1_P!NO1?^"NW_  3"\0Z#HGQFTR+R
M/'/@7Q+*\&C>/K$Q"*2*2:,$VUR\*JF\J49HX9"8WC+O^B=% 'Y6?%__ (.K
M/@'^SWXWF_9R^//[#/QB\'_&BVNH;"Y\#>()-'MM,CO9658V.KR7HC^QL6!%
MYY6PH=^-O->J?L0?\$KOC!K_ .W%K'_!6_\ X*6ZSH&K_&34+$6'P_\  _AF
M=[G1_A[I>QD2&*>0*;JZ\N216E"B,--.R[C(&7W3_@H=_P $K/V*_P#@I_\
M#Z+P1^U5\+4O;ZPB9=!\7:1(+76-'+<G[/<A3\A/)BD5XF."R$@$<K^Q]^S9
M_P %"/V%O 5A^S_!\9O"7QV\ Z'"MKX6U/QQ=W6@>)=(L4&V.TEG@@O(-36-
M0%1V6V<#@LP"@ 'UK7G7[6G[+'P<_;7_ &=?%7[+WQ[\/G4O"WB[3&M-0CC8
M+- P(>*XA8@[)HI525&P0'1<@C(/HM% 'Y%_L5?!C_@M/_P0UM[K]ESPU^SO
M;_M5?L]P:G//X,U/PMXGM-*\0^'(II&D:(VMXX#HSEW,*%T5W9A,H8I7V#H'
M[4W_  46_:5LCX4^$G[ >L?!=;P>5=?$#XT>(-,F72E/#2VVE:;<W$M],H^X
MDSVT)."TA *-]9T4 ?+7[7/_  2H^"O[5G_!.CQ%_P $_-;U[4$AU>W:]MO&
MFI$76H_\)!YYNO[8N&^7SII+HN\P78'262-?+4@+\Z_\$U?B9_P52_X)\_LX
M:5^PA^U3_P $Y?&GQ.U#P!;'2/AW\1/A?XIT.;2M:TR/(M8[I]0OK62Q$2[8
M@[QEC$B9C#+E_P!+Z* /B;_@F;_P3X^)G[*7BOXV?MZ_M*Z/9:Y\<OCEK<NM
M:YX<\)7<<T.B:?%O:ST&SN+EH4FD *H\[M%&[K&"0L?F-\[_ /!.7]ES_@HI
M\!O^"SG[0?[;OQE_80U_3/ 'QN;[/H\]GXX\-W-YI"I=0F&6[A34ONF%&:00
MM*RMA563K7ZPT4 ?E#_P5:_99_X*'?M+_P#!5O\ 9M_:J^ _["NO:OX(^ /B
M(W.LWU[XY\.6D^N(U_%)(]E#)J.X+Y, 9//\EF9]K)'C)]3_ ."_'P2_;*_;
MY_X)V7O[)W[+_P"QQXEU3Q!XRNM)U"^N=7\5>'K&VT-+:\6X>WG9]2)EN/W*
M#$(DAQ+GS25*U^A=% 'Y4?\ !2VR^,_A?_@UR\9_"SX_? K5O 7BGP3\+O"O
MA[5=.U'5]-OHKJ:SN]*@>XMY;"YG4PLR$KYGER>J=">E_P""/O[6W[7?PJ_X
M)6?!KP-K_P#P3K\?^-]0M_AQIY\"ZYX!UO1&TC7+!X ]F+B:]OK>73ID1DBG
M$D3*#&SQM*&"CUS_ (+Q_";]J;]JG_@GYX[_ &-_V4_V8]9\:Z_X]L;"*+6U
M\1:-I^FZ:L6HP7$@F:]O8IVDV0':(XF4F1<N,$#M/^"/OA/]H;X/?L&_#C]F
MK]I?]G+6? 7B7X<>#-/T*[FO-=TG4++56@1HO-M9+"\F?&R-&83)%@R@+O +
M  Y#_@DI_P $W?'7[*9^+'[3W[5EUHVI_&G]H/Q;-K_Q M]'8SZ?HUJ7E:VT
M>W=P#+'")Y [X <E5^81J[?+W[(G[#'[<7_!!K]L?XCM^S+^SAK'QP_9?^*F
MH)J4.A>#-9L8O$/@V[1G\I5MK^>!+I0DC0DI)^\2.%V:-D*/^N5% 'P!+^QA
M\=?^"C?_  49^%_[>'[7'P3NOAG\.O@-9W,_PI^&_B/5+.\UW5=<N7C=]5U
M6,T]M9Q1>1;-% DTLADMU9R@RAZ;XE>,/^"BG[.7_!3'QA\5_ G['^M?%'X"
M^+_ ^A6FHMX7\3:3#JVDZQ:M=A[FVM+V[@^T1F.:-)4RK';&R$^6RM]LT4 ?
MG1\-/V#_ (B?M/\ _!;'P_\ \%</$_[.>H_!WPYX#^'DVB:=IGB6:Q&N^,M5
MGAN[9KVZM[&>>.""*VNVB4RR&=S#%\@0#;YC^VO^RW_P46^+/_!>;X)?\%$O
MAE^P;X@U#X<?"'0#H>I&?QSX:@U#55D?4EFNK:!]3 "!+Y&196C9C&0PCSQ^
MLM% 'YR_\'%O_!/O]JG_ (*(?L>?#W5OV2/!<-WX^^'GC^S\4P^#=:U*UMI;
MF/[/*DD E:7[/YT<CQ$CS=C*DFUR=N[T7XB_LJ?M-_\ !63_ ()^?$'X#_\
M!1GX5:#\(;SQWI-I#X<\(>'=?37KCPS?6K^?'J-Q>QK''-(]R(B;:+*)##L\
MYFE<K]JT4 ?AS^Q=%_P=2_\ !,OP[;?L*>&/V._ WQE\':&[6?@;QEK?B2#[
M+I]F#A%6Y%[!+]E3.5AN(EF51L0A0BC]6?V%?V?/C#\#_AAJ7B/]ISXBV7BW
MXK^/-9.O?$36])MVAT^.[,,4$5A81M\T=E;6\,4,8;YG*R2M\\SU[;10 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 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%<[\4O&_B'X>>#I_%'AGX2^(O&UU P T#PM-IZ7DJ
MG.64W]U:PD#'0RACG@&ODK]D/_@O-^QC^US^U_JW["$7@[XB_#?XHZ2DX/A?
MXJ>';?3)KN>$;I;:'R[J;=,(\RA#MWQJ70L : /M>BFS.T432)"TA521&A&6
M/H,D#)]R!7R3>?\ !6K3K#]KZU_84N/V"/CU_P +*O?"K>);?2$LO#36S:0L
MAB:\-X-;^S+&)1Y9S(&WE4QN900#ZXHJ*QN)KNQAN[BQEM9)8E=[:<H7A)&2
MC%&921T.UB,C@D<UXG^WE_P4%_9\_P""=?P]\+_$O]HC6I+33O%GCW2_"NGM
M"4S'->2D/</N(Q#!"DL\C#)"QX +,H(![C11UZ56UG6=(\.Z1=>(/$&JVUC8
M6-M)<7U[>3K%#;PHI9Y'=B%154$EB0  2: +-%?$W@[_ (++WG[0EOJ/C;]A
MS_@GM\:/C-\/]+OIK5_B-H<>D:5INJ/"Y25M-75+VWFU!%8,NY(P-RD#.,UU
M'[(W_!8_]E?]L_\ :=G_ &/?AIX9\>:'\1-&\):AKOC3PGXZ\'W&D7WAE;6Z
ML+=;:Z28;'EE-\KIY#RIMB8LPW)N /K&BOC/_@HM_P %L/@G_P $MY=/U#]J
M[]F'XQ6N@:UJDUAH'BO0M,T6^T_49HUWD+LU030EDRZK/'$S -A?E;">'/\
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
M WB*/4;/]F3XZ:M\/I;XVMO\3;?P=#;Z;>G=@26PN+B-Y(R 3\VR3 /[O/%
M'ZMT5P'[,'[4/P*_;*^"&A_M%?LW_$"T\2^$O$-N9-/U*U#*0RDK)%+&X#Q2
MHP*O&X#*0017F?QP_P""C7@OP#^T!/\ LB? ?X->+?C'\5K'1TU77O"/@9[&
M&+P]9R<PRZE?7]Q;VUF91S'$7:9QAA'M8,0#Z+HKYL_9*_X*>?!;]J#XV^*/
MV4/$O@;Q3\+_ (R>#8%N=>^%_P 0;:WBOWM&V[;VTFMIIK>^MCN7][#(V-RD
M@!E)^DZ "BOGG]O_ /X*)^%?^"<_PPU+XZ?&']G#XFZ_X$T6&V?6O%W@JUTF
MZM[!IYO)1)(9]1ANOOM&"XA,8\U/GZXH?\$]/^"FG@C_ (*5_#NS^-7P*_9L
M^*6D> ]1FNH;#QIXQLM(L[.YEMW,<B1Q1:E+=.!(K1[UA,>]'4L"IP ?2M%<
M%^T+\;==^ G@6?Q]I/P \;_$"WLK:>XU&R\"C3'NK:&)-[/Y5]>VIF) (5(?
M,D)& O(SYE_P3Z_X*.>$?^"C_P -+'XX?!K]F_XH:!X%U5+DZ/XO\;V.E6=M
M?O!+Y+I###J$URPWAP)/)$1,3C?D $ ^BJ**^9/VJ_\ @J-\)?V=OCMIG[(W
MPW^%7C3XP?&35M+.IQ_#?X;6-O-<:=8Y %YJ%S<S0V]A 20 TLFX[D(7#J2
M?3=%?!'QU_X+Z_";]C/PIJ&J_M^_L=?&?X,:DEA<2>&X-=T"VU33O$=VD;.E
MA::EI4]S;+</MQMF:)5!W%MN37WK%()8UE P&4$"@!U%%% !17C7[:7[?O[*
M?_!/[X?VOQ"_:@^*$&B)JMU]D\/:+:V\EWJFN77 %O9V<(:6X?+("57:N]=[
M*"#7F'AW_@HS^U)XLTE/'NB?\$=OC\OA20"1+K4]4\+6.L-#C)?^R;C5TN%8
M?\\VVR'/W<Y  /K2BOE[]EW_ (*Z?LD?M@_M07/[(7P:N/$Z^.=&\&7WB#QC
MH/B7PK=Z1=^&_LUY96ALKN&[C1A<,]X& CWH%C)W8="WU#0 4444 %%%% !1
M110 4444 %%%% !1110 45\L?\$WO^"CWCK]OCQE\8_"GC+]C+QI\)X_A7XT
M&A6%]XK=F3Q A:<&6,-!%Y4J"%6DB4RJBW$)$K;N/J>@ HHHH **H^)KKQ#8
M^&]0O?"6CVVHZK#8ROIFGWM\;6&ZN A,<4DRQR&%&?:ID".5!)VMC!\Y_9E_
M:Z^&_P"TV?$7AG2-/U'PYXV\$:@FG^/OA]XCC2+5?#]TZ[X_-5&9)8)4_>0W
M,+/#,G*.<,% /5***XWXW?%3Q-\(/"#>+?#7P&\9?$%HM[7&D^"&TTWD4:HS
MEPE_>VHESMVA(V>1F8 (: .RHKX,_86_X. _@!_P4D\4:YX4_8[_ &/_ (\>
M*9O#$,,GB.ZET30;"VTX3%Q$)9KO6(TWN8Y-L:DN1&Y"X5B/O.@ HHHH **^
M7/\ @JE_P5!\-?\ !+3X WOQY\5_LZ^//'5E:+")9O#-G%'I]E)-,(81>7DK
M@0*\I5 425@73*?,I/L'[(WQZ_X:H_95^&O[37_"*?V%_P +#\!Z1XD_L3[=
M]J_L_P"W6<5S]G\[9'YNSS-N_8F[;G:N<  ]#HHHH ***\.^*'_!07]GSX1_
MMR?#;_@G[XLUJ1/'?Q/\.:IK&A1H4\J&.T *I*200TZQW?E8!!-G(#@E<@'N
M-%%% !1110 4444 %%%% !1110 4444 %%1Q75K/++!#<QO)"P69%<$QD@$!
MAV."#SV-24 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%9?C37YO"_A:^\06]NLKVD!D6-S@-ST.*X\PQV&RO 5
M<9B':G2C*<G:]HQ3DW9:O1;(TI4YUJL:<-VTEZLU**\6_P"&I->_Z%6S_P"_
M[T?\-2:]_P!"K9_]_P!Z_$/^)E_"+_H,G_X)J_\ R)]#_JEGG_/M?^!+_,]I
MHKQ;_AJ37O\ H5;/_O\ O1_PU)KW_0JV?_?]Z/\ B9?PB_Z#)_\ @FK_ /(A
M_JEGG_/M?^!+_,]IHKQ;_AJ37O\ H5;/_O\ O1_PU)KW_0JV?_?]Z/\ B9?P
MB_Z#)_\ @FK_ /(A_JEGG_/M?^!+_,]IHKQ;_AJ37O\ H5;/_O\ O1_PU)KW
M_0JV?_?]Z/\ B9?PB_Z#)_\ @FK_ /(A_JEGG_/M?^!+_,]IHKQ;_AJ37O\
MH5;/_O\ O6GX+_:%UGQ3XJL?#T_AVVB2[G"-(DK$J,'D9KLR_P"D1X5YICZ6
M#P^+FZE64817LJBO*344KN-EJ]V15X6SJC2E4G!62;?O+9?,]6K\$O\ @KU_
MP3!^-_[<O_!27]I_]I#]D3Q5JMA\8?@%H7PWU_P7I^DS>7+JBRV.HO<1P,N&
M6\0V-O) 0?F:-H\9D5D_>VOC/]CW_E,[^VC_ -BC\*__ $@UNOV\^=.4_P""
M"?\ P68\,?\ !5;]G9] ^(LEMI'QJ\!V\=K\0_#NP0F\ .Q=4MX^,12,,.@'
M[F7*$!6B9^IU-$_XB&=%DV#=_P ,8ZH-V.<?\);8<5\)_P#!=7_@G7\<?^"=
M?[3=G_P7J_X)?61T[5=#OS>?&3PC8P$VUS$YQ<:@\*8\RVG4E;M!@JQ%R,-Y
MDB>X?\$Y_P#@HA\#_P#@IW_P5K\$_M/?!.\\E;O]C'5+3Q+X>FF#W.@ZHGBK
M3C/938QG;N#(^ )(W1P!NP #]2J_$[_@NK^S'\2/^"R&N?M 7/PLU>]D\-?L
M>^"UM?"UC9'=#XA\93>1J6LQ<#]XUOI<4-L(_O"XN!@D%E/ZK?MW_M5:#^Q)
M^R'X]_:?UZR^VMX5T&2;2=+ );4]2D*PV-DH7DM/=200C'/[ROCK_@GC9_\
M!4G]BW]EC2?@YK'_  2WL_$_B._O[_7_ !YXKN_CQI,$VOZYJ-P]U>W<L?V9
MMI:238%+-M2-%R<4 =__ ,&\7[>?_#?O_!+OP)XV\1:S]K\7^"H?^$1\:F23
M=(]Y9(BQ7#D\EIK5K>9FZ%Y) /NUZ5_P60^$'QC^/G_!+GXX?"'X VUU<^+=
M;\!7<6EV%D3YU^%*R36D8'WGFA26$+_$90.]?DS_ ,$7/&7Q+_X)._\ !=[X
MB?\ !/CX[_"L_#?PK^T!;MK'@OPF^O0ZA;Z7<;[BYTV.*ZB"QRIY7VRRW*JE
MY8XE/*XK]X?B1\2O!'PA\&W7Q!^(^OQZ7HUC)"EW?RQ.ZQ&69(4R$4D R2("
M<8&<D@ D 'Y*?\&YO_!=W]C;Q=^R[\/_ /@GI\=_$-C\,/B7X"TF+P]IMMK[
M+::?XA2$E(WAG?"1W;<"2"4J[RDF/?N*I^BFK?L;: ?^"D'A[]OCP[8:=:ZA
M%\'=:\$^*9@"MSJ"S:GI-YI[8"X98A;7ZLS-G]]& "!Q\P?\%7/^#;3]A_\
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
M^(W@&*31-,/B+%EIVN@7$C*%F?"V]X"^R2&8J9)/F0LSE$_8/XE_$KP1\'O
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
M,/@7X9U#2? /A^UT73[O5[[6]7F:9F:YO;J9[BZNYYI6+R.[LS,[L2  ,A5
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
M_#S]@CXV>*/@5IJW$\_Q(T^#186N+&"9HIM1@TVXU&.]>T4HY,CQ1D*C,5"
ML/<M+_;[^'7Q1_8@T_\ ;E_94^'_ (I^+FBZ_I)NO"WA[P=IZ_VCJ,V]XFMV
M29D6!HYD>.5G.(S&_#$ 'XFMOB)XT^(W_!'#QQ\-?^";G[/UGX-_9M\.?!7Q
M'8:#\0/C#<7,VI^*-,33[OSYM.TJ)DDV3_O2EW>3P\N'6UD3Y:[;_@U'EDD_
MX(B_#%'<D)K?B-4!/0?VS=G'YD_G0!X7_P $ /\ @K/\>_VDH?C-\5OBQ^R+
M\5_&.M_$;X_-)+JO@+1[&XT3PS!_9NFV<%A--=7L#QK;PQ1[F"-\F')+,PK[
M;^"/_!8'X(?&3]OS5O\ @FGJGP)^*/@GXI:)H<FK:A9>+]+TP6:VJQPRJR7%
MEJ%RLF])XV4ID<D$@@BOC/\ X,UO^3'OC/\ ]E_U#_TV:=3?!O\ RN3^+?\
ML@4?_I%94 ?97[9/_!8;X*_L'_M ^ _V?_VA?V??BI9R?$WQ''HO@;Q7INFZ
M3=:3J=PTUO"QWIJ/GPJC7,6X2PH^"2JL!FO7?VK_ -L;X;?LE:;X9M/$N@:Y
MXE\4^.M>71/ 7@3PI;13:KXAO_+:5HX5FEBACCCB1I)9YI(X8D7+.,J#^;/_
M  =(_P#)Q'[")_ZK\O\ Z5Z37OG_  7@_8)_;8_:6@^#O[7?_!.KQG:6?Q?_
M &??$&HZKX<T*_FCBCUF&]CMTGB5IOW1DQ:HGERE8WCFF4NI(! /7+'_ (*>
MS^'OVHOAO^R#\>?V+OBG\//%?Q3O[V#PIJ.KMI%]HUPEI8SWD[?;=/OIU$BK
M %,+*LF958 IEJ^J*_(G]AC_ (+V> /VKOVK/ '[%?\ P5=_9.U+X+?'WPEX
MM6Z\%SW<$\&F7>MRV5U8*HCGQ-://!>SQQ([312^8,2[FC4_KM0 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %0:CIUCJ]C+INI6
MRS03+MEB?HP]#4]%9U:5*O2E2JQ4HR3335TT]&FGHTUNAQE*,DT[-'.?\*C^
M&O\ T)UG_P!\'_&C_A4?PU_Z$ZS_ .^#_C71T5\U_J-P3_T+,/\ ^":?_P B
M=?\ :.8?\_I?^!/_ #.<_P"%1_#7_H3K/_O@_P"-'_"H_AK_ -"=9_\ ?!_Q
MKHZ*/]1N"?\ H68?_P $T_\ Y$/[1S#_ )_2_P# G_F<Y_PJ/X:_]"=9_P#?
M!_QH_P"%1_#7_H3K/_O@_P"-='11_J-P3_T+,/\ ^":?_P B']HYA_S^E_X$
M_P#,YS_A4?PU_P"A.L_^^#_C1_PJ/X:_]"=9_P#?!_QKHZ*/]1N"?^A9A_\
MP33_ /D0_M',/^?TO_ G_F<Y_P *C^&O_0G6?_?!_P :GT[X:> ](OHM2TWP
MO:PSPMNBE13E3ZCFMRBM*7!?!U"K&K2RZA&46FFJ----:IIJ-TT]FA2Q^.E%
MIU9-/^\_\REXEU6_T+P]?:UI?AJ]UFYM+626#2--D@2XO7521#$UQ+%$'8C:
M#)(B9(W,HR1\&_LLV_[>O@3_ (*A_M ?M*?$;_@G;XPT_P"'WQ=TOPEI_AR\
MMO&_A:>_L#H\%S TMY;KJH"I)]LE?]T\K*(E&UBQQ]_T5]*<A!JFEZ9K>F7&
MBZUIT%Y9WD#P7=I=0K)%/$ZE61U8$,I!(((P0<&OS,_X)T?\$/+C_@F/_P %
MG_B%^T/\"--3_A2/Q ^$>HP:-;?:5,GAO59-6TN=M+*L=[PE(I9(9 #A$:-S
MN0-)^G5% 'YY_P#!2C0O^"AW[17[7OP4\,> ?^"?>O>(_@5\+OB7#XL\;W+>
M//#EK=^*;RS5QI[6MM-J*G[/!*PN=EP8FF=4#)%Y88_H!X=U2^UOP_8ZSJ?A
MR\T>YN[2.:XTG47@:XLG90S0RF"22(NA)5C'(Z9!VLPP3<HH _'C_@XK_P""
M?'_!0S]N']IOX-?&G_@GW^R3JB>+?@[>3W"_$B^\9:!817I$]K=6*VT<M]Y[
M"">.=LRQQ8:5L*X;</K#]KK0/VT_VZ_^"1GQ)^#GB_\ 94U/X<?%[Q+X3M]+
M30+CQ-IM[9RZC)+#OGM;JQNIR+9&!;=*L<BJI^5L9/VO10!\/?!']K?_ (*H
M?LX?#;2_AM^W3_P3F\2_$WQ%I5BEHWQ&^ 'B32-1L]>=% ^T36>IW5A<6DC
M N=C(S%F4(#Y:^;_  N_84_:J_;^_P""JGA#_@J9^W%\$8/A+X3^$>@-I_PC
M^%MUK=MJ.LWURS3-_:6IRVK/#!M:<ND".S*T<8;&QS+^E-% 'Y.?\'+7[('_
M  4*_P""GOP;\(_LQ_LE_L5ZU>V?A?QX^NZEXLUWQGX>L;6\$=I/;0K:QMJ)
MG97%S(Y,T<++L4;26.WZ2^%_[5/_  5%\)?"#0_!MU_P1KUE=<TG1;:Q G^.
MWAD6#M%"J;VF25Y54E>T#$9Z&OM&B@#\L-:_X(L_M??\%/OVL_#W[5G_  6E
M^)7A)/!O@N8R>!OV>OAO<W%SIMNI9687]Y,D9E9S&GG>6K&8*JAXD41U]E_\
M%%?''[9W@+]F?6/!W_!/;]FF\\9_$'6M$N=/\.7\/B#2=+T[PU*46-+J8WMU
M$[E Y>*.&.16:':YC!!;Z$HH ^9O^"1GPS^(GP"_8.^'G[-OQ/\ V9M;^&NL
M^!/"UGIVKP:IKFE:A#JVHE3)>WL$VGW<Y82W+2S,9EB;=/PIP36?_P %G/@I
M\0_VH/\ @GE\1OV7OA?^S9JOQ)UOQWX?FL='M;+6=+L;?2[]&2:TO;B74+J#
M"1SI'(!$LCDQX(4'</JFB@#\U/\ @WF^&G_!4K]BG]F_3_V'/V\?V0M1L]#T
M#4;E_!?CO2_&^A7\%A93%YVL[N&.^-QA9VD\MXDEXG5"J+'N.Q^W9_P2+^,>
MC_MUZ+_P5V_X)A>(=!T3XS:9%Y'CGP+XEE>#1O'UB8A%)%)-&";:Y>%53>5*
M,T<,A,;QEW_1.B@#\K/B_P#\'5GP#_9[\;S?LY?'G]AGXQ>#_C1;74-A<^!O
M$$FCVVF1WLK*L;'5Y+T1_8V+ B\\K84._&WFO5/V(/\ @E=\8-?_ &XM8_X*
MW_\ !2W6= U?XR:A8BP^'_@?PS.]SH_P]TO8R)#%/(%-U=>7)(K2A1&&FG9=
MQD#+[I_P4._X)6?L5_\ !3_X?1>"/VJOA:E[?6$3+H/B[2)!:ZQHY;D_9[D*
M?D)Y,4BO$QP60D CE?V/OV;/^"A'["W@*P_9_@^,WA+X[> =#A6U\+:GXXN[
MK0/$ND6*#;':2SP07D&IK&H"H[+;.!P68!0 #ZUKY"_X+3?LY_M:?M._LQ>$
M_ O[$.I6.F_$;2_B[X?U[0M<U:X:*STIK&62X^U7#*DC>4K(H*A'W;@NT[L5
M]>T4 ?&WAS]OO_@H/\-_"T7AO]I?_@D3\1=7\8PVP0ZI\&O$^@ZMX?U.8#!E
M22\U"VN;-&;GRY869 <9?&X^=?\ !//_ ()U_M(^)O\ @HY\1/\ @L?^WMX*
MTCP9XZ\6Z)'H'@'X6:/J\>I?\(OI210Q&2\O(OW4]X\<"J?*+(HEE.?F5(_T
M.HH _*[_ (*$_L4?\%'/AG_P7"^&W_!5C]A_]FW1_B]HT/@(^&/%'A6]\;6F
MA2VCE;N)I&GN3\L9CN(I%>-)FW1.ICY4MUW_  6 _P""07[1O_!2G]EKX<_$
M[2?'OAO0/VG/A/J<NN^&M3TMI(M+,DLRW#Z4DS+OVPM%;"&ZD0%GMMSI&)WV
M?I'10!\&6W[87_!5_P"-/[,E[\#_ /AUOXI\%?'#4] DTB_\7:[XMT-?!6E7
M<D1A;5$NH+Z6[GC4L9EMHK:1\@)O(S)73?LW_P#!%K]G[X'_ /!)*_\ ^"4V
MM:K-JFD^)O#MY!XR\3P6XCGO=7NL.^HQH20K12K"85;=M2VB5BV"3]FT4 ?A
MI^P_\,_^#EO_ ((WVE[^PQ\(OV0_!_QY^&<&K3R^!/$UWXF@M+;3TFD+L5=[
MN*2WA9V:5[>:/*R,_EN0<M^EW[,/PT_:N_9P^#?B;X^_M)Z%+\7?CEX]O8+W
MQ1HGP[FLK*RTZ&*,QV>CZ<=3NK>-+*U5I&WR2&226XN)2&,F*^G:* /R(_X(
M3_\ !-3]JGX#? +XW?L6_P#!2O\ 84N$\(?&CQ3<ZK=W\'BW0]1TZ.":T*20
M3K!?&YCD#Q1>5)#$Y#L&S%LWU%_P1:^ W_!8G_@EGXY\8_LS>-?V,_%7C7]F
MVZ\1W]W\.9)_B#X7/B'PY$T[F(M =3$+),A1IH5E"I*7DC)W.K_KY10!\*_#
MWXG?\%&_V5OVS_CFWCK]ASQ9\0O@AXR\:P:UX!\1^!O$.C3ZKI<O]E6,%Q%)
M875]"[VTDL#,I0[TD$A*,LJE<+_@GS_P3R\?:7_P59^-O_!6OQW\%/\ A4UC
M\1?#$'ASPK\.KFZM)-2G0M92WFKZBME)+;P33RV4;+$DLC'S)&E(<\_H/10
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
M-+-IFO[YK8VD6T;8Q=;LE[4,PA_8BB@#\D_VY?V8O^"E/Q6_X+F_!#_@H?\
M"+]@77=5\!?!W0_[%U/[=X]\-6M]K"22:@MQ<VT)U(A5$=Z&C65HV9DPXCSD
M?9/_  5B_9*^)O\ P4<_X)=_$7]F/X?++X4\6>-/#]C<:78:]<PJT%W;7EM?
M+97,EM)+$-[6_D.\;R(-Y(9E&3]1T4 ?E!^R'\//^"Z/Q&_X)GS_ /!-7XN_
ML=>!/A&OAWX577@F+XF^(/&UMJKZS8QV#V5M;VNEV+,L4[1>7&]W-<>4OS2K
M%*?W5>A?\&X/[,?_  4>_8[_ &/-/_9I_;*^#'AOP%X?\)7FJG1K1->BU/5]
M9GN[S[2)Y#:R/;VD$6Z= N^228R*Q$(B_??H[10!^0O_  1@_8A_X*\_\$SO
MB1\3/V,U_9Z\'?\ "K?$_P 46\26?QRO?&EO)Y%B?*BE2#2X]\\]Q-;P1J@F
M$"02%F<RKM5MG_@HU^R%_P %$?V:/^"S_A'_ (*]_L'?LSP?&C2=2\$+X9\=
M^!8?$5OIMY&0CP[UDF.%1D^SLLBK)M>!PZA64G]8:* /Q?\ ^"N'[%__  6G
M_P""A_BC]FOXX:;^SEX7T37?"/CZ?6H?AA:>++6YL_"4,+6<R3ZKJ[B/[7/,
M\)4QVD9CC2/"B5V+#[$_;"O_ /@J?X0_:!_9X_:2^!'[*VB^-CX?T'Q=IOQJ
M\#>&/B#;)!]AOIM'>V2RN]36S^T7*-9F5&:&,'R98R8Q*"?MRB@#\SOVU_V/
M?BE_P6 _:N_9X\;7?['7BKX2:!\&?'$?B7Q;X]^(S:5!JE[;PR13)HEA!87E
MU)*))8E9YI&2&+&Z,R,2I_3&BB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***^6/^
M"S?_  4'U/\ X)C?\$^O&7[5/A7PW:ZOXCM)+73/"MAJ&[[,^H74HBCDF"D,
MT<:EY2H(+^5LW+NW  ^IZ*_*#XWV'[>'[+__  2CM?\ @K)<?\%0?'>N?%#2
M_!FD^--:\.ZW!I;>"=5CNS;R/I$>G16D9BC9+@0QS1RK*7PP*[@%_3OX-^/I
M_BK\(?"OQ1NM!FTJ7Q)X;L=5DTNX.9+-KBW28PL<#+(7VG@<B@#I**** "BN
M9^-'Q=\#? 'X0^*/CE\3=6%AX=\'Z!=ZSK=V<?NK6VA:60@'JVU#@=S@#K7Y
MS?\ !MQ_P6 ^)'_!271OC-\-?VC[I[?Q]X1\?7>LZ=I5TNR2UT&_GD:&R52
MQ%G,DD!)&51X >>H!^G]%%% !1110 445\2?\' FN?M*?#?_ ()G?$CX[_LT
M?M1^)/AOJW@S0UO9!X<L[3?J2-=6\;1M<2Q-/;XC>0J]N\3ABI+$ J0#[;HK
MY9_X(D>-/&/Q$_X).? ?QQ\0/%FIZ[K6I^ +:?4M8UF_DNKJ[E+/F2660L\C
M'NS$FOJ:@ HHKS+X@_M7?"_X>?M-?#W]DS4+TW'C#XBV&JZAIMC!(N;6QT^$
M237,HSD*SO'&G'S,7Q_JVH ]-HHKC/VA_C_\*/V5_@CXG_:(^./BJ+1?"?A'
M29-0UK4903Y<2X 5%'+R.Q5$0?,[NJ@$D"@#LZ*_-+]ASXQ?\% O^"W/AN__
M &L+GXX>(?V<OV?+S5+FR^'/A?P!9V3>*?%$$$K1/J%[J5Y!<+:Q^:CQB.VC
M4L5<;L(LLO0_MB?!/_@I)_P3I^$&K_M:_L2_MH^-_C%IO@JR?5?&?P<^-XL]
M5_MG3807N7L-0MK:"ZMKB.(.ZQEI%?!P"0L; 'Z&45X'_P $U_\ @HC\#?\
M@I]^RMHW[47P,EEMX+J1K+Q!X?O)%:ZT/4XU4S6<Q7AB Z.K@ /'(CX&[:/?
M* "BBO,OVFOVKOA?^RM9^"F^(=Z3>_$'XC:+X,\+:;#(HFO-0U&[2 %0QY6*
M,RSO_L0L!R0" >FT444 %%9_BK1M1\0^'KO1=(\6:AH5S<PE(=7TJ.W>XM6_
MOQK<Q2Q%O]^-Q[5^$'QH_P""T7_!1O\ X)J_\%P;C]G']J/]JO4O'_[.>C>/
M['0M8U'7/!&@V4D%MJ.E6EXDLUSI]A XEM%U"*5MNT2K;OA.2% /WOHI(Y(Y
MHUEB<,K %64Y!!Z$&OD?_@MM^WGXP_X)_P#[!?B+XB_!O][\3?$L@\/_  SM
M4MHYW&IS1R2/=^7(&1DM;:*XNCYBM'^X"N-K&@#ZYHK\O_\ @VC_ &F_V[O^
M"AW[*FK?M=?MA?MI>(O$MQ:?$"\T/3O"EGX1\.Z?I[6UO:6TF^9K;3$N&=I+
MEON3( (DX.6S^H% !1110 4444 %%%% !1110 445\L?LX_L,?M._!S_ (*+
M_%_]L#XA_MU>)_&7P_\ B!I<5MX6^$FH+-]B\.R!X6$D8:9HE\M8I(T\J-"Z
MW+F3+#) /J>BBB@ HHHH **** "BBB@ HHHH **** "BN8^,'@SQO\0?A]?^
M$OAY\7=3\"ZK>1[;?Q/H^FV=W<V?^U''>12P$_[\;#VSR/S._P"#4C]H#]H_
M]H?]G[XY^)OVG_CEXD\?>(M/^-$UB=6\1ZI+<M&D=C;CRX5=BL$6[)$:!47/
M H _5BBBO@K_ (*L_P#!7[Q=^RW\;? O_!/3]B+X=Z9X_P#VD/BG-''H.D:M
M,XTOPW:R%@+_ %#RR'8!8Y9!$I7$<,DKLJA%E /O6BOC[P)_P38_:FUW1+?Q
M'^TQ_P %;OCKJWC29!)?2_#R;1_#VBVDA'^KMK%=/EW(I. T[2%]H+ $D5Y3
MXG^('_!5;]EC_@IQ^S;^SI\9?CMI7Q$^ OCGQ'KMN?'B^%HM-U^YOXO#VI2V
MVE:M]E9;210Z+/%)!!#YK0,64&( @'Z+T444 %%%% !117F7P?\ VKOA?\<O
MCC\3_@5\/;TWM_\ ":_TW3_%%[%(K0K?7=NUP;92I.6BC\O?Z.Y3@HU 'IM%
M%% !1110 45^/WBWXG_MB_#/_@ZK^#7[+GCS]L[QOXP\ ZU\.]4\1VWA6[>"
MPTZW>32=9C\IK6RCBAN DEF'2297E7(R[$;CN_\ !V=\1_VO?V=?V(=)^.G[
M.W[8_C3P1I][XWL?#VL>%_#!M[);F">UO)6F^VQ1B]5]\"+L681E68%"<&@#
M]9**XJQT3Q#X\_9TA\.:/XUO=$U;6?!2VUKXCME$EQ87$UGM6[0,<-(CL)!D
M\E>:\E_X)9?L=_M!_L-_LL)\#_VF/VO==^-7B3_A([W4!XLU]IVE@MYMFRT1
MKB:65T4HTF7<X:9P,*%H ^CZ*** "BBB@ HHK%^(/A77?&?A>?P_X<^)6M^$
MKN8CR]<\/P6,EU!C^ZM];7$!S_M1-[8H VJ*_%__ ()5?M<?\%1OVKO^"P/[
M0/[#GQR_X*0>*;GP1\$[G6H;";1_A[X2M;[53;ZLME;&>0Z0ZJ/*+.X102X7
M!"Y!_9Z%&BA2-YFD95 ,C@98^IP ,GV % #J*** "BBN#_:@_:,^&O[(W[//
MC']ICXOZJMGX<\%:!<:IJ3[U5Y1&N4@CW$!I97V11KU9Y%4<F@#O**SO"'B*
M'Q?X2TOQ;;6S0QZIIT%W'"Y!9%DC5PI(ZD!L5HT %%%% !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 5^='_  <5^(/@
MC^T5^QWX@_X)KZ#)JWBWXX^.[2VU7X<_#SP5IW]H:JL]I<I,MY<H&"65D0CQ
MO<3LB[7?9O9=M?>WQ=\:7_PW^%'B?XB:5HCZG=:#X>O=1MM-CSNNY(('E6(8
MYRQ4+QZU^.__  :"_&GPU^TZW[2/[2/QA\6P:]\>?%?CRVO/%6IWKAKPZ,\
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
M/\ 76$,<;S]CN#@>O"L?P/I0!^L?PR\+^*/!7@'2O"OC7XE:EXQU:QM!%?\
MB?5[*TMKG4I 3F62*SAA@1CZ1QHO'2OR1_X/3/BWXJ\'_P#!.WP#\*]"O9;>
MQ\8_%&'^VS&Q N(+2SN)D@;L5,S128_O0*>U?JU\1/VB?V?OA#HEGXF^+/QT
M\'>%]-U#5GTNPU#Q%XGM+*"YOED:-K6.2:15>8.CH8P2P9&&,@BOB;_@YC_X
M)_>.?^"@?_!,C5=*^#FA2ZMXS^'FMP>+O#VE6:;YM32"&:&ZM8@,EW:WGDD1
M "7DAC0<L* /I'_@EKX%T+X:_P#!-7X!>"O#ELD=K9_!WPX?W8P))7TV"260
MX[O([N?=C7NMW:6M_:2V-];1S03QM'-#*@970C!4@\$$'!%?$?\ P;N?MC^#
M?VP/^"4GPM?2=9BD\0_#OP];>"_%^F%QY]E=:=$MO$9%ZCS;=()@>A\PCJK
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
MJ#QAXZN?$O@*:1_#GQ*T+5+.PU^)9'5WC9X[3[,ZDI'C-OE3&&4AF=F^NZ*
M/@OXV_\ !N5_P3Q_:#^ >F_!+XH7OQ'U35+'7K;5KOXHZEXU:^\6ZG+#'+$D
M-QJ%Y'-NM]DK@0(B1H?F148LQ]<^-?\ P2G_ &;OC5^R#;_L)S>)O&OASX9F
M,C7-&\-Z[&EQK\AGCN#-?WMQ#-=3RM,AD=_-4RL[>9O^4+],44 >!_LO?LS_
M  )_X):_LU-\/[']H'7++X7^$;(M9O\ $SQ'8_8_#MOYCNY%X\,+I$7DZ32L
MBX4($&0?G3_@J5XM_9D_X*:6?P>_X)N?"_QEX1^(R_%'QY8>)?$UYX=U>#44
MT3PEH\HN[[41-;NX@:X98M/B<\.;V0#.UA7V%^UK^RM\&/VV_P!G;Q1^RW^T
M'X?FU/PAXNLXX-6M;:[>WE!BFCGADCD0Y5XYHHI%/(R@R",@^8?\$Z_^"2W[
M$/\ P2X\,:IH?[)_PREL]0UTH->\4:W?->ZIJ"(24C>9@ D2DY$<:HF?F*EN
M: /I"TM+6PM8K&QMHX8(8UCAAB0*D: 8"J!P !P *^2OVYO^"*W['?[?7[0_
MA+]JSXF:OX\\+>/O"%B+&T\2_#GQ:^D75Y9JTC+;S2(C.%'G3#?$8Y=LK*7(
MV@?7-% 'YT?\%G_^"4?_  3G^.?[+/P\TGXYW_B_PWIWP>M+ZR^%O@_X>ZK&
M+[Q%=W44*II,4$\,\E[<3RVL&"O[XL9'9\,[CZV_X)\?"/XG_ /]A7X/_!/X
MU:J;WQ;X4^&^C:5XCF-QYV+R"SBCDC\S)\P(RE _\03/>O4KOPKX7O\ Q%9^
M,+[PW83:OIUO-;Z?JDMFC7-K%*4,L<<I&Y%<QQ[E! ;8N<X%7Z /DWXD?\$>
M?V=-3^/6K?M4_LU?$;Q[\!?B-XAY\3^(?A#K,%I;Z^VXL&O].N[>XLKEMS,Q
M8PAV9BQ8L<UG7O\ P1J^$GQ@\8Z+XV_;L_:/^*7[0Y\/7BWFC>&/B5JMC#X=
MMKI>%G.E:7:6EM/( 2,SK*"&(Q@XK[#HH 9:VMM96T=E96Z0PPH$BBB0*J*!
M@* .  .,5^%'_!$/]E:#X^_\%7?^"A7Q$\,?';QU\./%_A#X[7$&B>)_ M_:
M;S:WFM^(3<VMQ:W]O<V=W"[6MLV)8&9&A4HR$G/[B>.?#6I>,/"EYX:TCQOJ
MWARXNT54UK0EMC=VP# DQ_:89H@2 5):-B Q*[6 8?*_[&W_  1>_9U_8/\
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
M^$?\06>GVGAE(9Q/#%:00V80*CA>9-[,J*KLX K[#HH ^9OVXO\ @EQ\*?\
M@HE\(]-^!7[4GQR^)6J^%;"2WN+C2=,U/3M/74KR$R;+NY:WL49WQ)]P%804
M5A&&!8]EX(_86^#6@_LE2?L0?$>_UKXC_#E]!CT--'^($UO=O'ID<2116OG0
MPPNXC$:LDKEIE8!A("J[?9Z* /SU_9U_X-NOV0OV9-?U'3?AU^TU^T*/AUJU
MZUSJ?P:?XJ26_AB^+8S'<P6L44MS$0 I224^8HVR&120?3/^"=7_  1&_8B_
MX)E:_JOC;X V?BN]\0:S>RW-YJGB#Q-*\:[Q(%1+.W$-FH1)I$1C"9%5B-_)
MS]?44 %>7_M=?L8?LQ_MV_""Y^!?[5OPCTWQ?X<N)!-%;WH9)K.< A9[>>,K
M+;R@$C?&RG#%3E6(/J%% 'P=\'?^"%W_  S?I\7@?]G3_@J?^U1X1\%0 I9^
M#(/&VF7MKI\7:&T-YITIMHQV"@GG.<\U]/\ [-O['WP<_9=CU/4_!*ZWK7B7
M7_*_X2;QUXTUZ?5]<UGR]WE+<7EPS/Y2;FV0)LACWMLC7<<^I44 ?.G_  4"
M_P""6O[)O_!231= 7X^:'K&F^)?"%Z+OP7\0/!NJG3M>T"<.K[[:Y"L -R*V
MV170,JN%#*&&#X3_ ."4GP_U'QCX2\;?M6?M+_%3X]3> M0CU#P7I7Q3U73V
MTS2[^-=L=\;33[*UCN[I 6V370G9"Q*[6YKZIHH \!_X* ?\$[/A'_P4E^%H
M^!O[0GQ$\;VO@N2>&XO_  UX7U6VLH+^>&3S(I)I#;O,^UL$()!'E58H64&G
M?#S]@71OA7^RG;_L<>!_VF?BG9^$+#1XM&TF8ZIIKZCI^E) \ L8;MK R+'L
M90'),L?E((Y$4$'WRB@#YB_X)U?\$I/@#_P2[\/ZIX%_9:^(OC^+PMK.H/J.
MH>%/$.M6U]9/>M''$;I<VPEBDV11J=DBJP1=RMM&.&\+_P#! G]@#P=^V1XC
M_;.\/6?C:UO_ !;KHUOQ'X#@\7RQ^&-1U$3FX%Q<6**IN +AFF$,LCP!V.(@
M/EK[6HH ^,?B?_P1 _9T^+_[8ND_M\^-_P!H'XR2_%?P^(TT#Q3:>++2W.FP
MQB0+;PP162PK#B:8-'L*N)9-X;>V?L&ST55\.Q>'==OI-8 LEMKRYU*&(O>C
M9M=Y4C1(\OR6"HJ?,0% XJ[10!\1_#K_ ((8_!/]G#XB^)O&?[#O[57QH^!.
MC^,KLW7B/P+\/-=TV30Y)CPTL%MJ=A=_99"/E#1$;5"JFQ54#Z)_9-_8U^ O
M[%G@2_\  _P.\-7,,FMZO-J_BGQ#K.HRWVK>(=3E.9;Z^NYB9+B9SR2QPO10
MJX%>IT4 ?'/CO_@BE^SY\1?VUM,_X*&^(OC]\7O^%N:&@BT/Q1:^);&(:? (
MY8A;Q6RV/D"'RYID:-HRKB5]^XNQ/3_\%!?^"47P)_X*;^"M$^&?[5?Q3^(=
M]X9T*YAO;7P_HNL6=A;37\<4D7VV7RK3?)*4ED&"WEKN.Q$R<_3]% 'BM]^Q
M;:ZE^RM)^R+>_M*?$Z30)M..E2ZR=3T[^UWTLVOV8V!N_L6[84^;SL?:=W_+
M;'RUPW["_P#P2A^#?_!./X7ZW\&/V4?C=\3-%\,ZW/-=MI6H:MI^H)97TBQ*
MUY;FYL7,<FR)5VDF(Y):,MAA]1T4 ?(?['?_  1C_9V_86^._BK]HKX ?&?X
MJVWB+Q[J/VWQ]_;'B2UOK?Q'*;B2X9KJ.:T/S&264^9&4D'FOM==QJK\0O\
M@BI\ ?BA^V;HO_!03QA^T'\7YOBUX;A2#P]XI@\1V$(TZW194%O%;)8BW$6V
M><-&8RK^=)O#%V)^QJ* /R3_ ."@OP0_X)]?\%F/^"LVF?\ !-GXZ^(+K2_$
M/P+\!'4-9\6V6M1V&N:_>7L<$D6E6:LA@DBBBE2]F<0LPD9$C$:"?=#KO_!I
M)^PK\,M)N_&GA#]OK]HCP5%ID,EY)JUSX]TV.WL%4;C,SK8P[$4#)8N, 9+<
M5]C?MZ?\$5_^"=O_  4>\26_Q"_:0^".?&%I"D5MXW\,ZG-IFJA$^XKRPD+.
M$XV^<LFS&%VUP7P7_P"#=O\ X)S?"K7;/7?&ME\0?BDNFW"3Z=I7Q7^(%YK&
MFP2(<H38Y2VF"X "S1R+P.,C- 'H?_!&O5/CCJG[!GA\?'+XMZE\07L]?UNR
M\'?$+6K=HKWQ3X;@U*XBTK5)PY+$W%JD4JNQ+/&\;EF+%C]&?$#PIJ_C7PQ/
MX>T3XAZUX7GF*XUCP^EHUU&H/*K]K@GC&1P3LW#^$@\UL0006L"6UM"D<<:!
M8XT4!54#   Z "G4 ?#?[.O_  0*_95_9/\ VB=;_:Q^ 7Q[^-&A?$+Q*UVW
MB/Q&_C*UO'U4W4XN)S<Q75G)%/OF D.]&^<!A@C-=7^VS_P1H_9U_P""@7Q;
M\)_&?]HWXQ?%*ZU;P#=&Y\"Q:+XDM=/@T&<O#(TMNL-H#YC26\+F1R[YC49V
MJH'US10!\Y_MA?\ !-KP%^W;^S]'^S'^TE^T!\3-5\(2B$ZW8V&HZ;8OK<D-
MQ]HADNI+>P0MY;K'A$V1GR49D9QO/,>)/^".?[-OC;]A*V_X)Q^._B9\1]:^
M&&G3::=%LK[Q!;"]TR&QE$L%O#=1VJRF(,JC#EV55549 ,5]9T4 ?(VO_P#!
M([P[\4/ .G_ K]I/]MGXW_%7X7Z?=6T[_#GQMK&D&UU06\B20Q:A>V>FV^H7
M\22(K^7-<L'*KYGF;17K?[97[#?[.G[=W[,>J_LD?'[P@\_@[4XK<10:1-]D
MFTZ2!E:WFMG48B>,J-HP5*Y5E9693Z]10!\F_ ;_ (([?L\?LU?LW:Q^S=\(
M_C!\5;.+Q%IT6EZ]XSOO%\=[KUUI444T46F1W-Q;NEE:1K,Y2.TC@*,20068
MMH?\$[O^"37P!_X)?:5J'A']EGXG?$6#POJU^]]J/A'Q!K]O?:?+=M$D1N K
M6PDBDVQQ@F.1 WEJ&#!0*^HJ* "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@
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 ***
,* "BBB@ HHHH __9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921161536">
<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, 2022</div></th>
<th class="th"><div>Jan. 29, 2023</div></th>
<th class="th"><div>Jul. 03, 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_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,  2022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">$ 7,520,015,752<span></span>
</td>
</tr>
<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">172,536,238<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">2022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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>
</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_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>15
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921123600">
<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, 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_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>16
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921193296">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 1,006,090<span></span>
</td>
<td class="nump">$ 1,037,098<span></span>
</td>
<td class="nump">$ 811,020<span></span>
</td>
</tr>
<tr class="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">284,185<span></span>
</td>
<td class="nump">277,271<span></span>
</td>
<td class="nump">206,421<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">721,905<span></span>
</td>
<td class="nump">759,827<span></span>
</td>
<td class="nump">604,599<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">141,133<span></span>
</td>
<td class="nump">135,372<span></span>
</td>
<td class="nump">130,982<span></span>
</td>
</tr>
<tr class="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">312,107<span></span>
</td>
<td class="nump">309,354<span></span>
</td>
<td class="nump">267,593<span></span>
</td>
</tr>
<tr class="re">
<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">20,779<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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,657<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">15,924<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment 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">19,571<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_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">246,229<span></span>
</td>
<td class="nump">315,101<span></span>
</td>
<td class="nump">170,529<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(1,837)<span></span>
</td>
<td class="num">(2,270)<span></span>
</td>
<td class="nump">3,697<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">6,715<span></span>
</td>
<td class="nump">6,660<span></span>
</td>
<td class="nump">12,994<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(412)<span></span>
</td>
<td class="num">(591)<span></span>
</td>
<td class="num">(309)<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">250,695<span></span>
</td>
<td class="nump">318,900<span></span>
</td>
<td class="nump">186,911<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">35,170<span></span>
</td>
<td class="nump">39,019<span></span>
</td>
<td class="nump">10,725<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_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
<td class="nump">$ 176,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_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="ro">
<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">$ 1.24<span></span>
</td>
<td class="nump">$ 1.59<span></span>
</td>
<td class="nump">$ 1.02<span></span>
</td>
</tr>
<tr class="re">
<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="ro">
<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">$ 1.23<span></span>
</td>
<td class="nump">$ 1.56<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_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="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 (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">173,407<span></span>
</td>
<td class="nump">176,463<span></span>
</td>
<td class="nump">173,489<span></span>
</td>
</tr>
<tr class="re">
<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">174,869<span></span>
</td>
<td class="nump">179,916<span></span>
</td>
<td class="nump">176,592<span></span>
</td>
</tr>
<tr class="ro">
<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.265<span></span>
</td>
<td class="nump">$ 0.245<span></span>
</td>
<td class="nump">$ 2.225<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">172,440&#160;</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 foreign currency transaction realized and unrealized gain (loss) 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=125521441&amp;loc=d3e30690-110894<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 35<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123602790&amp;loc=d3e30226-110892<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -URI https://asc.fasb.org/extlink&amp;oid=126980362&amp;loc=d3e28228-110885<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124440516&amp;loc=d3e30840-110895<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941158&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109237686&amp;loc=d3e17752-110868<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>17
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921081808">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
<td class="nump">$ 176,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_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 $(5,943), $(2,206), and $981 in 2022, 2021, and 2020, respectively</a></td>
<td class="num">(17,152)<span></span>
</td>
<td class="num">(7,152)<span></span>
</td>
<td class="nump">6,478<span></span>
</td>
</tr>
<tr class="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">182<span></span>
</td>
<td class="num">(236)<span></span>
</td>
<td class="num">(4,119)<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="num">(16,970)<span></span>
</td>
<td class="num">(7,388)<span></span>
</td>
<td class="nump">2,359<span></span>
</td>
</tr>
<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">(4,385)<span></span>
</td>
<td class="num">(6,753)<span></span>
</td>
<td class="nump">1,115<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">(4,385)<span></span>
</td>
<td class="num">(6,753)<span></span>
</td>
<td class="nump">1,115<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">(21,355)<span></span>
</td>
<td class="num">(14,141)<span></span>
</td>
<td class="nump">3,474<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">$ 194,170<span></span>
</td>
<td class="nump">$ 265,740<span></span>
</td>
<td class="nump">$ 179,660<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e557-108580<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=126929396&amp;loc=SL4569616-111683<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=126929396&amp;loc=SL4569643-111683<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=126929396&amp;loc=SL4569643-111683<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=126929396&amp;loc=SL4569616-111683<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=SL4573702-111684<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=126929396&amp;loc=SL4569643-111683<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=126929396&amp;loc=SL4569616-111683<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e689-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27357-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17A<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>18
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062925150976">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="num">$ (5,943)<span></span>
</td>
<td class="num">$ (2,206)<span></span>
</td>
<td class="nump">$ 981<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e640-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>19
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923136560">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 181,374,000<span></span>
</td>
<td class="nump">$ 186,161,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_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $223,545 and $137,124 in 2022 and 2021, respectively, allowance for credit losses of $0 in 2022 and 2021</a></td>
<td class="nump">218,759,000<span></span>
</td>
<td class="nump">137,455,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_AccountsReceivableNetCurrent', window );">Accounts receivable, allowance for credit losses of $730 and $776 in 2022 and 2021, respectively</a></td>
<td class="nump">125,417,000<span></span>
</td>
<td class="nump">130,348,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_UnbilledReceivablesCurrent', window );">Unbilled revenue</a></td>
<td class="nump">2,179,000<span></span>
</td>
<td class="nump">3,990,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_InventoryNet', window );">Inventories</a></td>
<td class="nump">122,480,000<span></span>
</td>
<td class="nump">113,102,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_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">67,490,000<span></span>
</td>
<td class="nump">68,742,000<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">717,699,000<span></span>
</td>
<td class="nump">639,798,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_LongTermInvestments', window );">Non-current investments, amortized cost of $476,148 and $587,981 in 2022 and 2021, respectively, allowance for credit losses of $0 in 2022 and 2021</a></td>
<td class="nump">454,117,000<span></span>
</td>
<td class="nump">583,748,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_PropertyPlantAndEquipmentNet', window );">Property, plant, and equipment, net</a></td>
<td class="nump">79,714,000<span></span>
</td>
<td class="nump">77,546,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_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">37,682,000<span></span>
</td>
<td class="nump">23,157,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_Goodwill', window );">Goodwill</a></td>
<td class="nump">242,630,000<span></span>
</td>
<td class="nump">241,713,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_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">12,414,000<span></span>
</td>
<td class="nump">11,888,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_DeferredIncomeTaxAssetsNet', window );">Deferred income taxes</a></td>
<td class="nump">407,241,000<span></span>
</td>
<td class="nump">418,570,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_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">6,643,000<span></span>
</td>
<td class="nump">7,242,000<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,958,140,000<span></span>
</td>
<td class="nump">2,003,662,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_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">27,103,000<span></span>
</td>
<td class="nump">44,051,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_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">93,235,000<span></span>
</td>
<td class="nump">92,432,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_AccruedIncomeTaxesCurrent', window );">Accrued income taxes</a></td>
<td class="nump">18,129,000<span></span>
</td>
<td class="nump">8,577,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_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">40,787,000<span></span>
</td>
<td class="nump">35,743,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_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="nump">8,454,000<span></span>
</td>
<td class="nump">7,786,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_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">187,708,000<span></span>
</td>
<td class="nump">188,589,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_OperatingLeaseLiabilityNoncurrent', window );">Non-current operating lease liabilities</a></td>
<td class="nump">31,298,000<span></span>
</td>
<td class="nump">17,795,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_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">249,961,000<span></span>
</td>
<td class="nump">293,769,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_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="nump">15,866,000<span></span>
</td>
<td class="nump">14,780,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_AccruedIncomeTaxesNoncurrent', window );">Non-current accrued income taxes</a></td>
<td class="nump">33,008,000<span></span>
</td>
<td class="nump">43,160,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_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">1,905,000<span></span>
</td>
<td class="nump">15,476,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_Liabilities', window );">Total liabilities</a></td>
<td class="nump">519,746,000<span></span>
</td>
<td class="nump">573,569,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_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 2022 and 2021, 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 2022 and 2021, respectively, issued and outstanding: 172,631 and 175,481 shares in 2022 and 2021, respectively</a></td>
<td class="nump">345,000<span></span>
</td>
<td class="nump">351,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_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">979,167,000<span></span>
</td>
<td class="nump">914,802,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_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">528,179,000<span></span>
</td>
<td class="nump">562,882,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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(69,297,000)<span></span>
</td>
<td class="num">(47,942,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_StockholdersEquity', window );">Total shareholders&#8217; equity</a></td>
<td class="nump">1,438,394,000<span></span>
</td>
<td class="nump">1,430,093,000<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,958,140,000<span></span>
</td>
<td class="nump">$ 2,003,662,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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669686-108580<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e681-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124260329&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 all classes of common stock held by shareholders. May be all or portion of the number of common shares authorized. These shares exclude common shares repurchased by the entity 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6904-107765<br><br>Reference 21: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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 all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by shareholders, which is net of related treasury stock. May be all or a portion of the number of preferred shares authorized. These shares represent the ownership interest of the preferred shareholders.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>The cumulative amount of the reporting entity's undistributed earnings or 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>20
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921066816">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 223,545<span></span>
</td>
<td class="nump">$ 137,124<span></span>
</td>
</tr>
<tr class="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">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_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent', window );">Non-current investments, amortized cost</a></td>
<td class="nump">476,148<span></span>
</td>
<td class="nump">587,981<span></span>
</td>
</tr>
<tr class="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">172,631,000<span></span>
</td>
<td class="nump">175,481,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">172,631,000<span></span>
</td>
<td class="nump">175,481,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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>21
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922776656">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
<td class="nump">$ 176,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_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">54,505<span></span>
</td>
<td class="nump">43,774<span></span>
</td>
<td class="nump">42,661<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation of property, plant, and equipment</a></td>
<td class="nump">16,347<span></span>
</td>
<td class="nump">16,616<span></span>
</td>
<td class="nump">22,139<span></span>
</td>
</tr>
<tr class="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">19<span></span>
</td>
<td class="nump">33<span></span>
</td>
<td class="nump">1,817<span></span>
</td>
</tr>
<tr class="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">3,274<span></span>
</td>
<td class="nump">3,667<span></span>
</td>
<td class="nump">4,364<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">19,571<span></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_NonCashLossFromCatastrophes', window );">Non-cash, loss from catastrophes</a></td>
<td class="nump">46,372<span></span>
</td>
<td class="nump">0<span></span>
</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_ExcessAndObsoleteInventoryCharges', window );">Excess and obsolete inventory charges</a></td>
<td class="nump">3,084<span></span>
</td>
<td class="nump">2,573<span></span>
</td>
<td class="nump">9,908<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseImpairmentLoss', window );">Operating lease asset impairment charges</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,427<span></span>
</td>
</tr>
<tr class="ro">
<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">4,968<span></span>
</td>
<td class="nump">4,887<span></span>
</td>
<td class="nump">1,274<span></span>
</td>
</tr>
<tr class="re">
<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">182<span></span>
</td>
<td class="num">(236)<span></span>
</td>
<td class="num">(4,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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Revaluation of contingent consideration</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(114)<span></span>
</td>
</tr>
<tr class="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">(27,338)<span></span>
</td>
<td class="num">(3,118)<span></span>
</td>
<td class="num">(3,353)<span></span>
</td>
</tr>
<tr class="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="nump">3,454<span></span>
</td>
<td class="num">(4,503)<span></span>
</td>
<td class="num">(21,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_IncreaseDecreaseInContractWithCustomerAsset', window );">Unbilled revenue</a></td>
<td class="nump">1,806<span></span>
</td>
<td class="nump">1,637<span></span>
</td>
<td class="num">(848)<span></span>
</td>
</tr>
<tr class="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">(48,934)<span></span>
</td>
<td class="num">(54,920)<span></span>
</td>
<td class="num">(10,319)<span></span>
</td>
</tr>
<tr class="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="num">(6,998)<span></span>
</td>
<td class="num">(32,342)<span></span>
</td>
<td class="num">(9,909)<span></span>
</td>
</tr>
<tr class="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="num">(17,277)<span></span>
</td>
<td class="nump">27,828<span></span>
</td>
<td class="num">(1,688)<span></span>
</td>
</tr>
<tr class="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,056<span></span>
</td>
<td class="nump">16,861<span></span>
</td>
<td class="nump">24,542<span></span>
</td>
</tr>
<tr class="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">(444)<span></span>
</td>
<td class="num">(6,401)<span></span>
</td>
<td class="num">(22,973)<span></span>
</td>
</tr>
<tr class="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="nump">4,886<span></span>
</td>
<td class="nump">14,417<span></span>
</td>
<td class="nump">6,571<span></span>
</td>
</tr>
<tr class="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="num">(12,081)<span></span>
</td>
<td class="nump">3,411<span></span>
</td>
<td class="nump">4,548<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">243,406<span></span>
</td>
<td class="nump">314,065<span></span>
</td>
<td class="nump">242,400<span></span>
</td>
</tr>
<tr class="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">(233,720)<span></span>
</td>
<td class="num">(668,053)<span></span>
</td>
<td class="num">(922,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_ProceedsFromSaleMaturityAndCollectionsOfInvestments', window );">Maturities and sales of investments</a></td>
<td class="nump">253,983<span></span>
</td>
<td class="nump">430,969<span></span>
</td>
<td class="nump">1,104,605<span></span>
</td>
</tr>
<tr class="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">(19,667)<span></span>
</td>
<td class="num">(15,455)<span></span>
</td>
<td class="num">(13,303)<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="num">(5,050)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,004<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">(4,454)<span></span>
</td>
<td class="num">(252,539)<span></span>
</td>
<td class="nump">169,439<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">9,861<span></span>
</td>
<td class="nump">63,292<span></span>
</td>
<td class="nump">125,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_PaymentsForRepurchaseOfCommonStock', window );">Repurchase of common stock</a></td>
<td class="num">(204,314)<span></span>
</td>
<td class="num">(161,652)<span></span>
</td>
<td class="num">(51,036)<span></span>
</td>
</tr>
<tr class="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">(45,921)<span></span>
</td>
<td class="num">(43,263)<span></span>
</td>
<td class="num">(390,508)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities', window );">Payment of contingent consideration</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,039<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(240,374)<span></span>
</td>
<td class="num">(141,623)<span></span>
</td>
<td class="num">(316,868)<span></span>
</td>
</tr>
<tr class="ro">
<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">(3,365)<span></span>
</td>
<td class="num">(2,815)<span></span>
</td>
<td class="nump">2,671<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net change in cash and cash equivalents</a></td>
<td class="num">(4,787)<span></span>
</td>
<td class="num">(82,912)<span></span>
</td>
<td class="nump">97,642<span></span>
</td>
</tr>
<tr class="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 beginning of year</a></td>
<td class="nump">186,161<span></span>
</td>
<td class="nump">269,073<span></span>
</td>
<td class="nump">171,431<span></span>
</td>
</tr>
<tr class="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 end of year</a></td>
<td class="nump">$ 181,374<span></span>
</td>
<td class="nump">$ 186,161<span></span>
</td>
<td class="nump">$ 269,073<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 value of a contingent consideration liability, including, but not limited to, differences arising upon 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126975305&amp;loc=d3e7008-128479<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=SL98516268-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 310<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126938201&amp;loc=d3e55415-109406<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 loss from impairment of right-of-use asset 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123399704&amp;loc=SL77918431-209957<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentForContingentConsiderationLiabilityFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>22
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921883776">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY - USD ($)<br> shares 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, 2019</a></td>
<td class="nump">$ 1,355,710,000<span></span>
</td>
<td class="nump">$ 345,000<span></span>
</td>
<td class="nump">$ 639,372,000<span></span>
</td>
<td class="nump">$ 753,268,000<span></span>
</td>
<td class="num">$ (37,275,000)<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, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">172,440<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">125,715,000<span></span>
</td>
<td class="nump">$ 9,000<span></span>
</td>
<td class="nump">125,706,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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,565<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">(51,036,000)<span></span>
</td>
<td class="num">$ (2,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(51,034,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 );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,215)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">42,661,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">42,661,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_DividendsCommonStockCash', window );">Payment of dividends ($0.265 per common share)</a></td>
<td class="num">(390,508,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(390,508,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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">176,186,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">176,186,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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $(5,943), $(2,206), and $981 in 2022, 2021, and 2020, respectively</a></td>
<td class="nump">6,478,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">6,478,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_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="nump">6,478,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="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="num">(4,119,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="num">(4,119,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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="nump">1,115,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">1,115,000<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, 2020</a></td>
<td class="nump">1,262,202,000<span></span>
</td>
<td class="nump">$ 352,000<span></span>
</td>
<td class="nump">807,739,000<span></span>
</td>
<td class="nump">487,912,000<span></span>
</td>
<td class="num">(33,801,000)<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, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">175,790<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">63,292,000<span></span>
</td>
<td class="nump">$ 3,000<span></span>
</td>
<td class="nump">63,289,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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,703<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">(161,652,000)<span></span>
</td>
<td class="num">$ (4,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(161,648,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 );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,012)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">43,774,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">43,774,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_DividendsCommonStockCash', window );">Payment of dividends ($0.265 per common share)</a></td>
<td class="num">(43,263,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(43,263,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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">279,881,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">279,881,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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $(5,943), $(2,206), and $981 in 2022, 2021, and 2020, respectively</a></td>
<td class="num">(7,152,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="num">(7,152,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_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="num">(7,152,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="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="num">(236,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="num">(236,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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="num">(6,753,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="num">(6,753,000)<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, 2021</a></td>
<td class="nump">$ 1,430,093,000<span></span>
</td>
<td class="nump">$ 351,000<span></span>
</td>
<td class="nump">914,802,000<span></span>
</td>
<td class="nump">562,882,000<span></span>
</td>
<td class="num">(47,942,000)<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, 2021</a></td>
<td class="nump">175,481<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,000<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">9,860,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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="nump">365<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,000)<span></span>
</td>
<td class="num">$ (7,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(204,307,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 );">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,000<span></span>
</td>
<td class="text">&#160;<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="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.265 per common share)</a></td>
<td class="num">(45,921,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(45,921,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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">215,525,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">215,525,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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $(5,943), $(2,206), and $981 in 2022, 2021, and 2020, respectively</a></td>
<td class="num">(17,152,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="num">(17,152,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_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="num">(17,152,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="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,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">182,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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="num">(4,385,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="num">(4,385,000)<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,000<span></span>
</td>
<td class="nump">$ 345,000<span></span>
</td>
<td class="nump">$ 979,167,000<span></span>
</td>
<td class="nump">$ 528,179,000<span></span>
</td>
<td class="num">$ (69,297,000)<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="nump">172,631<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>
</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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126964447&amp;loc=d3e11149-113907<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126964447&amp;loc=d3e11178-113907<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126961718&amp;loc=d3e4534-113899<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e689-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27357-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17A<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921018208">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="num">$ (5,943)<span></span>
</td>
<td class="num">$ (2,206)<span></span>
</td>
<td class="nump">$ 981<span></span>
</td>
</tr>
<tr class="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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 21<br> -URI https://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32262-110900<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e640-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=125521441&amp;loc=d3e30755-110894<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e640-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>24
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140063008398208">
<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, 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>
</tr>
<tr class="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, investments, stock-based compensation, 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. It is the Company&#8217;s policy to invest in investment-grade debt securities with effective maturities that do not exceed ten 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%">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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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:9pt;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: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; useful lives are 39 years, building improvements&#8217; useful lives are 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131">two</span> to ten years. 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%;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 12 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, through year ended December 31, 2022, was estimated using the three-month London Interbank Offered Rate (LIBOR) 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 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 would proceed 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 </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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 distribution networks range from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06">eleven</span> to twelve years, completed technologies from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5">five</span> to eight years, customer relationships from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6">five</span> to eight years, non-compete agreements from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7">three</span> to seven years, and trademarks two 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2">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. The Company recognizes all derivative instruments as either current assets or current liabilities at fair value on the Consolidated Balance Sheets. 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 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. These solutions are provided to customers in a variety of industries, including the consumer electronics and logistics industries. </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 typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. 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 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 objectively 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 </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%">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 objectively 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 revenue recognition criteria, 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 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 a contract 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,257,000 in 2022, $1,965,000 in 2021, and $1,443,000 in 2020.</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 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, or 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%">Only 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 not classified as current. 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.</span></div><div style="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 Tax Cuts and Jobs Act of 2017 imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax. In 2019, the Company elected to account for the impact of the GILTI minimum tax in deferred taxes, a change from the Company&#8217;s initial election made in 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. The change is considered preferable, as it appropriately matches the Company&#8217;s current and deferred income tax implications.</span></div><div style="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 $48,050,000 and $43,665,000, as of December 31, 2022 and December 31, 2021, respectively; net unrealized losses on available-for-sale investments of $19,976,000 and $3,006,000 as of December 31, 2022 and December 31, 2021, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,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%">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%">Amounts reclassified from accumulated other comprehensive loss, net of tax, to investment income on the Consolidated Statements of Operations were net realized gains (losses) of $(182,000), $236,000, and $4,119,000 for 2022, 2021, and 2020, 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%;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 safety and liquidity. The Company has historically not experienced any significant realized losses on its debt 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 has two large customers that each represented 11% of total revenue in 2022. These two customers combined represented 17% of total accounts receivable as of December 31, 2022. 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. Our contract manufacturer's 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. On June 7, 2022, this contract manufacturer suffered a fire at its Indonesian plant destroying a large portion of the Company's component inventories. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,000. Refer to Note 22 for further information on this event and the charges recorded in "Loss from Fire" 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%">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 Acquisitions</span></div><div style="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 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 primarily establishes fair value using the income approach based on a discounted cash flow model. The income approach requires the use of many assumptions and estimates including future revenues and expenses, as well as discount factors. Contingent consideration liabilities are reported at their estimated fair values based on probability-adjusted present values of the consideration expected to be paid, using significant inputs and estimates. Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain milestones and discount rates consistent with the level of risk of achievement. The fair values of these contingent consideration liabilities are remeasured </span></div><div style="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 reporting period with changes in fair value included in "Other income (expense)" on the Consolidated Statements of Operations. 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></div><div style="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">Restructuring 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%">One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#8220;communication date&#8221;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.</span></div>Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18726-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI https://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>25
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062925127616">
<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, 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_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: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">Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"</span></div><div style="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 these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.</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">Accounting Standards Update (ASU) 2021-08, "Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers"</span></div>The amendments in this ASU primarily address the accounting for contract assets and contract liabilities related to revenue contracts with customers in a business combination. The ASU clarifies that an acquirer should account for the related revenue contracts in accordance with Accounting Standards Codification 606 as if the acquirer had originated the contracts. The amendments in this ASU are effective for fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, although early adoption is permitted. The amendments in the ASU should be applied prospectively to business combinations occurring on or after the effective date of the amendments. Management adopted this ASU on December 1, 2022 and the adoption did not have a material impact on the Company's financial statements and disclosures.<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -URI https://asc.fasb.org/topic&amp;trid=2122394<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 105<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126987489&amp;loc=SL124442142-165695<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126986314&amp;loc=SL124402458-218513<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126986314&amp;loc=SL124402458-218513<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 11.M.Q2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038215&amp;loc=d3e31137-122693<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 10<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122640432&amp;loc=SL121648383-210437<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 10<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122640432&amp;loc=SL121648383-210437<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 848<br> -SubTopic 10<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=125980421&amp;loc=SL122150809-237846<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983759&amp;loc=SL121830611-158277<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section S99<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=122038215&amp;loc=SL108384541-122693<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 10<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128293352&amp;loc=SL126838806-209984<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983955&amp;loc=SL121967933-165497<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL126732908-238011<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 10<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128293352&amp;loc=SL126838806-209984<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL126732908-238011<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983955&amp;loc=SL121967933-165497<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983759&amp;loc=SL121830611-158277<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL126732908-238011<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983955&amp;loc=SL121967933-165497<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 848<br> -SubTopic 10<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=125980421&amp;loc=SL125981372-237846<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983759&amp;loc=SL121830611-158277<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>26
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140063008605664">
<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, 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_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, 2022 (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%">415&#160;</span></td><td style="background-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%">&#8212;&#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%">&#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:10pt;font-weight:400;line-height:100%">538,495&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 2px 7.75pt;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%">&#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:10pt;font-weight:400;line-height:100%">60,429&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,546&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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%">Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">&#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:10pt;font-weight:400;line-height:100%">1,924&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">&#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:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">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%">&#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:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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: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:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company's contingent consideration liabilities are reported at fair value based on probability-adjusted present values of the consideration expected to be paid using significant inputs that are not observable in the market, and are therefore classified as Level 3. The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. in 2017 was written down to zero in 2019 resulting from a lower level of revenue in the Americas' automotive industry. The balance remained at zero through the remainder of the five-year assessment period which concluded during the second quarter 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%;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 adverse impact of the COVID-19 pandemic on our business in 2020 triggered a review of long-lived assets for potential impairment as of May 26, 2020, which resulted in operating lease asset impairment charges of $3,427,000 (refer to Notes 7 and 23) that were included in "Restructuring charges" on the Consolidated Statements of Operations, and intangible asset impairment charges of $19,571,000 (refer to Note 9) in the second quarter of 2020. These fair value measurements were based on the present values of future cash flows using significant inputs that are not observable in the market, and were therefore classified as Level 3. The Company did not record impairment charges related to non-financial assets in 2022 or 2021.<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>27
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140063023083520">
<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, 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>
</tr>
<tr class="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 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%">2022</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%">2021</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%">180,959</span><span style="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%">185,624&#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%">415</span><span style="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%">537&#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%">181,374</span><span style="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%">186,161&#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%">164,055</span><span style="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%">73,088&#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%">26,890</span><span style="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%">37,655&#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%">Agency 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%">15,858</span><span style="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%">2,802&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">11,332</span><span style="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%">18,912&#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%">Municipal 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%">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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,998&#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="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%">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%">218,759</span><span style="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%">137,455&#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;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%">374,440</span><span style="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%">481,218&#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%">Treasury bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,214</span><span style="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%">39,753&#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%">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:700;line-height:100%">33,539</span><span style="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%">43,940&#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%">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:700;line-height:100%">1,924</span><span style="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%">2,119&#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%">Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,077&#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%">Municipal 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: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%">641&#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-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%">454,117</span><span style="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%">583,748&#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:0 1pt"/><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%">854,250</span><span style="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 #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:#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:400;line-height:100%">907,364&#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"/></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 cash balance included foreign bank balances totaling $160,611,000 and $142,009,000 as of December&#160;31, 2022 and 2021, 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%">Corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; treasury bills consist of debt securities issued by the U.S. government; municipal bonds consist of debt securities issued by state and local government entities; and sovereign bonds consist of direct debt issued by foreign governments. All of the Company's securities as of December 31, 2022 and 2021 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%">Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $3,620,000 and $3,037,000 as of December 31, 2022 and 2021, 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, 2022 (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%">167,558&#160;</span></td><td style="background-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%">(3,503)</span></td><td style="background-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%">164,055&#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%">27,607&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(717)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,890&#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:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency 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%">16,143&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,602&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(270)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,332&#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%">Municipal 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%">635&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#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;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%">394,576&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">561&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,697)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">374,440&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,333&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(198)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,214&#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%">35,144&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,708)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,539&#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%">2,095&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(171)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,924&#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%">699,693</span><span style="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%">743</span><span style="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%">(27,560)</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%">672,876</span><span style="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><div style="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, 2022 (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%">285,087&#160;</span></td><td style="background-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%">(9,591)</span></td><td style="background-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%">187,153&#160;</span></td><td style="background-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%">(14,609)</span></td><td style="background-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%">472,240&#160;</span></td><td style="background-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%">(24,200)</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%">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%">47,582&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,495&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,077&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,425)</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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,614&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(465)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">102&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,716&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(468)</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%">Agency 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%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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%">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%">967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(67)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">957&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(104)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,924&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(171)</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%">Municipal 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%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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 #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%">382,732</span><span style="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%">(12,718)</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%">190,707</span><span style="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%">(14,842)</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%">573,439</span><span style="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%">(27,560)</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:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">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, 2022, 2021 or 2020. Management currently intends to hold these securities to full value recovery at maturity.</span></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The Company recorded gross realized gains on the sale of debt securities totaling $133,000 in 2022, $246,000 in 2021, and $4,283,000 in 2020, and gross realized losses on the sale of debt securities totaling $315,000 in 2022, $10,000 in 2021, and $164,000 in 2020. 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, 2022 (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%">164,055&#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%">167,661&#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%">94,417&#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%">63,101&#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%">48,796&#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%">465&#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%">538,495&#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%">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%">26,890&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,755&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,587&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,197&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,429&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,332&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,429&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,384&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,758&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,546&#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="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%">Agency 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%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#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%">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%">&#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:10pt;font-weight:400;line-height:100%">967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">957&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,924&#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%">Municipal 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%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#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 #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%">218,759</span><span style="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%">183,812</span><span style="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%">114,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:#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%">89,056</span><span style="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%">66,439</span><span style="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%">465</span><span style="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%">672,876</span><span style="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><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>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_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>28
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062924981440">
<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, 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_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 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%">2022</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%">2021</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%">71,720</span><span style="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%">50,452&#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%">906</span><span style="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%">5,293&#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%">49,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57,357&#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%">122,480</span><span style="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%">113,102&#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="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The Company recorded provisions for excess and obsolete inventories of $3,084,000 and $2,573,000 in 2022 and 2021, respectively, which reduced the carrying value of the inventories to their net realizable value.</span></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Refer to Note 22 for information regarding losses incurred from the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022, including the impact on inventories and incremental provisions for excess and obsolete inventories recorded as a result of this fire.</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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>29
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927137920">
<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, 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_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 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%">2022</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%">2021</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%">3,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;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%">3,951&#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%">24,533</span><span style="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%">24,533&#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%">45,003</span><span style="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%">47,886&#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%">14,491</span><span style="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%">10,436&#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%">53,663</span><span style="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%">50,748&#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%">27,176</span><span style="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%">30,562&#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%">6,378</span><span style="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%">6,449&#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%">175,195</span><span style="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%">174,565&#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%">(95,481)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(97,019)</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%">79,714</span><span style="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%">77,546&#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="margin-top:4pt;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 $17,358,000 and accumulated depreciation of $16,604,000 in 2022, resulting in a loss of $754,000. Of this loss, $735,000 relates to production equipment destroyed as a result of the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022 (refer to Note 22) and is included in "Non-cash impact of charges related to fire (Note 22)" on the Consolidated Statements of Cash Flows. The Company disposed of property, plant, and equipment with a cost basis of $20,647,000 and accumulated depreciation of $20,614,000 in 2021, resulting in a loss of $33,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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI https://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=SL120174063-112916<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>30
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927306112">
<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, 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_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:9pt;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 operations. 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, 2022 , there were two options to terminate and fifteen 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, 2022. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of 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%">The total operating lease expense was $8,939,000 in 2022, and $8,180,000 in both 2021 and 2020. The total operating lease cash payments were $8,548,000, $8,225,000, and $8,009,000 in 2022, 2021, and 2020, respectively. 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 $144,000, $154,000, and $123,000 in 2022, 2021, and 2020, respectively.</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 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%">2023</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%">9,473&#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%">2024</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%">6,935&#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%">2025</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%">4,975&#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%">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%">3,791&#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%">3,353&#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%">15,809&#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%">44,336</span><span style="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><div style="margin-top:4pt;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 $39,752,000 and $25,581,000 as of December 31, 2022 and 2021, respectively. </span></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2021, the Company entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of ten years to serve as a new distribution center for customers in the Americas. 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 ten-year term. This lease commenced during the first quarter of 2022, and therefore the Company recorded approximately $9,271,000 within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date.</span></div><div style="margin-top:4pt;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 3.3% and 3.4% for the leases outstanding as of December 31, 2022 and December 31, 2021, respectively. The weighted-average remaining lease term was 7.8 years and 5.1 years for the leases outstanding as of December 31, 2022 and 2021, 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%">Management closed eleven leased offices in 2020, prior to the end of their lease terms, as a part of a restructuring plan (refer to Note 23). The carrying value of the lease assets associated with these offices was reduced to zero, resulting in operating lease asset impairment charges of $3,427,000 in 2020 that are included in "Restructuring charges" on the Consolidated Statements of Operations. Remaining lease liability obligations associated with the early contract terminations totaled $765,000 and $1,717,000 as of December 31, 2022 and 2021, respectively, and are included in "Operating lease liabilities" on the Consolidated Balance Sheets. The Company did not record impairment charges related to <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyMDk0NjI3OTE2NzE3_f7c0adc1-fff6-4724-8df6-067e74b7d592">operating lease</span> assets in 2022 or 2021.</span></div>The Company owns a building adjacent to its corporate headquarters that was partially occupied by a tenant during a portion of 2020. This lease terminated prior to the end of its lease term during the second quarter of 2020, and the Company is now fully occupying this building for its operations. Annual rental income related to this lease totaled $77,000 in 2020.<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI https://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>31
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062924936016">
<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, 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_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 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, 2020</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%">244,078&#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="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%">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%">(2,365)</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"/></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, 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">241,713&#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%">Acquisition of SAC Sirius Advanced Cybernetics GmbH (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%">2,359&#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%">&#160;&#160;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%">(1,442)</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, 2022</span></td><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%">242,630</span><span style="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><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For its 2022 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 2022, 2021, or 2020.</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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -URI https://asc.fasb.org/subtopic&amp;trid=2144439<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>32
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927363984">
<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, 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_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 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%">Completed technologies</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%">28,017</span><span style="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%">(17,744)</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%">10,273</span><span style="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><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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,838</span><span style="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,860)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,978</span><span style="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 2px 7.75pt;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: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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(177)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">163</span><span style="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="display:none"/><td colspan="3" style="display:none"/><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, 2022</span></td><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:10pt;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:10pt;font-weight:700;line-height:100%">34,195</span><span style="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 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:10pt;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:10pt;font-weight:700;line-height:100%">(21,781)</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:10pt;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:10pt;font-weight:700;line-height:100%">12,414</span><span style="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"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;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:'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:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</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:700;line-height:100%">Accumulated<br/>Amortization</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: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%">Completed technologies</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: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%">24,217&#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%">(15,234)</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%">8,983&#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%">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%">10,578&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,891)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,687&#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 7.75pt;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%">710&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(492)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">218&#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%">Distribution networks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,060&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,060)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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:400;line-height:100%">110&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(110)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">Balance as of December 31, 2021</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: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%">73,675&#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%">(61,787)</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%">11,888&#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="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 SAC Sirius Advanced Cybernetics GmbH ("SAC") in the fourth quarter of 2022 (refer to Note 21), the Company acquired completed technologies valued at $3,800,000 with an estimated useful life of 7 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%">In 2022, the Company retired approximately $43,280,000 of intangible assets primarily related to distribution networks and customer relationships that were fully amortized and had a net carrying value of zero on the Consolidated Balance Sheets.</span></div><div style="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 adverse impact of the COVID-19 pandemic on our business in 2020 triggered a review of long-lived assets, including intangible assets, for potential impairment during the second quarter of 2020. Based on this assessment, management concluded that certain of the Company's finite-lived intangible assets failed the recoverability test, and recorded impairment charges for these assets equal to the amount by which their carrying value exceeded their fair value. The Company also measured the fair value and recorded an impairment charge for its indefinite-lived intangible asset related to in-process technologies. The fair values were established, with the assistance of an outside valuation advisor, using the income approach based on a discounted cash flow model that estimated future revenue streams and expenses attributable to those revenue streams provided by 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%">This review resulted in <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEyMDk0NjI3OTEyNTM5_b5a3a977-f818-42cc-9d87-d8c18828a4f9">intangible asset impairment charges</span> totaling $19,571,000 in the second quarter of 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab Co. Ltd. ("Sualab") as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $10,070,000, $5,900,000, and $3,382,000, respectively. In addition, customer relationships acquired from EnShape GmbH that had a gross carrying value of $447,000 and accumulated amortization of $228,000 on the measurement date were reduced to zero, resulting in an impairment charge of $219,000. The Company did not record impairment charges related to intangible assets in 2022 or 2021.</span></div><div style="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%">2023</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%">3,137&#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%">2024</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%">2,623&#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%">2025</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%">2,300&#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%">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%">1,995&#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%">1,273&#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%">1,086&#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%">12,414</span><span style="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><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -URI https://asc.fasb.org/subtopic&amp;trid=2144471<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>33
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927173856">
<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, 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_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 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%">2022</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%">2021</span></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%">Deferred payments related to Sualab Co., Ltd. acquisition (1)</span></div></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%">19,282</span><span style="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%">&#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"/></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%">Incentive 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%">18,554</span><span style="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%">37,917&#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%">Salaries and payroll 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:10pt;font-weight:700;line-height:100%">8,121</span><span style="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%">8,519&#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%">7,191</span><span style="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%">7,572&#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%">5,847</span><span style="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%">4,686&#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%">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:700;line-height:100%">4,375</span><span style="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%">5,427&#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%">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%">29,865</span><span style="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,311&#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%">93,235</span><span style="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%">92,432&#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="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) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent. The deferred payments are being recorded as compensation expense over the four-year period, and the accrued balance was reclassified from "Other Liabilities" to "Accrued expenses" on the Consolidated Balance Sheets in the fourth quarter of 2022 when the liability became current.</span></div><div style="margin-top:4pt"><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 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="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, 2020</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,406&#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%">3,256&#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%">(3,235)</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;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 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%">5,427&#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%">1,876&#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%">(2,928)</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"/></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, 2022</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: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%">4,375</span><span style="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"/></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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a),20,24)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>34
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927392320">
<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, 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>
</tr>
<tr class="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, 2022, the Company had outstanding purchase orders totaling $50,942,000 to procure inventory from various vendors, due in part to higher inventory purchases in response to global supply chain constraints. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales 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%">A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2022, 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 $5,269,000, $547,000, and $1,311,000 in 2022, 2021, and 2020, 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: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><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI https://asc.fasb.org/topic&amp;trid=2144648<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 440<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6491277&amp;loc=d3e6429-115629<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI https://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>35
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927169040">
<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, 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_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:6pt;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:6pt;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-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_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>36
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927113872">
<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, 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_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 InstrumentsThe Company&#8217;s foreign currency risk management strategy is principally 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 <div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. </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 (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, 2022</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, 2021</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%">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:400;line-height:100%">60,000&#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%">64,174&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65,000&#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%">73,748&#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:400;line-height:100%">185,000&#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%">9,480&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">140,000&#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%">6,842&#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:400;line-height:100%">55,000&#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%">7,619&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,374&#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%">8,500&#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:400;line-height:100%">700,000&#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%">5,281&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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:#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%">5,213&#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:400;line-height:100%">1,590,000&#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%">4,238&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,355,000&#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%">4,155&#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:400;line-height:100%">3,445&#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%">4,161&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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:#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%">4,552&#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:400;line-height:100%">1,730&#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%">1,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,480&#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%">1,167&#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:400;line-height:100%">1,120&#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%">1,218&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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="margin-top:4pt;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, 2022</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, 2021</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, 2022</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, 2021</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%">27</span><span style="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%">39&#160;</span></td><td style="background-color:#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%">479</span><span style="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%">230&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:4pt"><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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec"><span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00">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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2"><span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c">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, 2022</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, 2021</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, 2022</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, 2021</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%">27</span><span style="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%">39&#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%">479</span><span style="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%">230&#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%">&#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="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 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%">&#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="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">27</span><span style="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%">39&#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%">479</span><span style="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%">230&#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:4pt;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%">2022</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%">2021</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%">2020</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%">9,823</span><span style="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%">4,262&#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%">(12,308)</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><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -URI https://asc.fasb.org/topic&amp;trid=2229140<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126731327&amp;loc=d3e90205-114008<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>37
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927199728">
<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, 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_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:6pt"><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%">2022</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%">2021</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%">2020</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%">390,573</span><span style="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%">435,220&#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%">310,027&#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%">234,643</span><span style="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%">247,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,787&#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%">227,447</span><span style="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%">200,135&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">168,287&#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%">153,427</span><span style="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%">153,999&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">123,919&#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%">1,006,090</span><span style="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%">1,037,098&#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%">811,020&#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:6pt;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%">2022</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%">2021</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%">2020</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%">848,153</span><span style="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%">889,253&#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%">674,830&#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%">157,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">147,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">136,190&#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%">1,006,090</span><span style="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%">1,037,098&#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%">811,020&#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: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:3pt;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 $14,578,000 and $10,854,000 as of December 31, 2022 and 2021, respectively. </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%;text-decoration:underline">Accounts Receivable, Contract Assets, and Contract Liabilities</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%">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 for primarily 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:9pt;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, 2020</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%">831&#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%">&#8212;&#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%">(55)</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%">&#8212;&#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, 2021</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%">776&#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%">191&#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%">(237)</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%">&#8212;&#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, 2022</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%">730</span><span style="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><div style="margin-top:3pt"><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, 2020</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%">21,274&#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%">31,907&#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%">(17,403)</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%">(35)</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, 2021</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%">35,743&#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%">39,076&#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%">(31,520)</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%">(2,512)</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, 2022</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%">40,787</span><span style="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><div style="margin-top:4pt;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, as our contracts have an original expected duration of less than one year.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI https://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130551-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130556-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130550-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130558-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130554-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>38
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927169040">
<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, 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_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:9pt"><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:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On April 25, 2018, the Company's shareholders approved an amendment to the Company's Articles of Organization to increase the authorized number of shares of $.002 par value common stock from 200,000,000 to 300,000,000. In addition, on April 25, 2018, the Company's shareholders approved an amendment and restatement of the Company's 2001 General Stock Option Plan which provides for an increase in the number of available shares by 10,000,000.</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%">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 October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 1,215,000 shares at a cost of $51,036,000 in 2020, and 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 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%">On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 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%">On March 3, 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 total cost of $87,314,000 in 2022, leaving a remaining balance of $412,686,000. 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:9pt"><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.055 per share in the first, second, and third quarters of 2020, $0.060 per share in the fourth quarter of 2020 and in the first, second, and third quarters of 2021, and $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022. The dividend was increased to $0.070 per share in the fourth quarter of 2022. Also, in the fourth quarter of 2020, an additional special cash dividend of $2.00 per share was declared and paid. </span></div><div style="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 $45,921,000 in 2022, $43,263,000 in 2021, and $390,508,000 in 2020, which included $351,428,000 paid for the special cash dividend. 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 shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -URI https://asc.fasb.org/topic&amp;trid=2208762<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496171-112644<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496171-112644<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496189-112644<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496189-112644<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496171-112644<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496189-112644<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496180-112644<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126731327&amp;loc=SL126733271-114008<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>39
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927103104">
<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, 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>
</tr>
<tr class="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"). As of December&#160;31, 2022, the Company had 13,746,000 shares available for grant 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQxOQ_c6e18e1b-cdd3-47f6-b8c9-e6aa92ec6c90">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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTUyMw_6d2dc99c-b10e-466b-8589-3aaaaf893c81">three</span> or four years of continuous employment or incrementally over such <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU3NA_94a4b7d7-3177-48cc-8502-c9b251159bed">three</span> or <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU1Mg_549c1e4c-b873-4d43-b5af-c44d64bbde49">four</span> year periods. PRSUs generally vest upon <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU3MQ_059c1591-f5c2-4f6e-9f51-65b36f7301c1">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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2021</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%">7,610&#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%">49.38&#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%">1,418&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">59.63&#160;</span></td><td style="background-color:#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%">(365)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33.58&#160;</span></td><td style="background-color:#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%">(196)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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.90&#160;</span></td><td style="background-color:#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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2022</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%">8,467</span><span style="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%">51.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="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%">6.13</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%">31,327</span><span style="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%">Exercisable as of December 31, 2022</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%">4,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-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%">44.71</span><span style="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%">4.94</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%">31,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;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"><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;<br/>&#160;December 31, 2022 (1)</span></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%">8,038</span><span style="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%">51.10</span><span style="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%">6.01</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%">31,224</span><span style="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:4pt;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"><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%">2022</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%">2021</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%">2020</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%">2.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;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%">1.3&#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%">1.4&#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.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"><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%">0.27&#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%">0.41&#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%">37</span><span style="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%">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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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%">5.5</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%">6.0</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%">6.0</span></td></tr></table></div><div style="margin-top:4pt"><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"><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:9pt"><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%">Generally, the current dividend yield is 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:9pt"><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:9pt"><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 $21.39 in 2022, $33.79 in 2021, and $19.62 in 2020.</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 total intrinsic value of stock options exercised was $8,424,000 in 2022, $80,369,000 in 2021, and $166,796,000 in 2020. The total fair value of stock options vested was $41,497,000 in 2022, $45,328,000 in 2021, and $45,998,000 in 2020.</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">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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2021</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%">823&#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%">65.26&#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%">715&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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.06&#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%">(192)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61.96&#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%">(77)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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.65&#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%">Nonvested as of December 31, 2022</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%">1,269</span><span style="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%">61.74</span><span style="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><div style="margin-top:4pt;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 is 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 $58.06 in 2022, $87.03 in 2021, and $52.09 in 2020. There were 192,000 RSUs that vested in 2022, 16,000 RSUs that vested in 2021, and no RSUs that vested in 2020.</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">Performance Restricted Stock Units (PRSUs)</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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2021</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%">&#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 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%">&#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"/></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%">33&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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.49&#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%">&#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: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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">Nonvested as of December 31, 2022</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%">33</span><span style="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%">62.49</span><span style="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><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%">No PRSUs were granted or vested during the years ended December 31, 2021 and December 31, 2020.</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 fair value of PRSUs is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant.</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">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 two groups: one consisting of senior management and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of 7% to stock-based awards for senior management and a rate of 12% 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 an increase to compensation expense of $1,536,000 in 2022, a decrease to compensation expense of $255,000 in 2021, and an increase to compensation expense of $1,787,000 in 2020.</span></div><div style="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, 2022, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $56,694,000, which is expected to be recognized over a weighted-average period of 1.51 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 $54,505,000 and $9,540,000, respectively, in 2022, $43,774,000 and $6,764,000, respectively, in 2021, and $42,661,000 and $6,569,000, respectively, in 2020. Stock-based compensation expense recognized in 2020 included credits of $1,401,000 relating to grants cancelled as a result of the Company's workforce reduction in the second quarter of 2020. No compensation expense was capitalized in 2022, 2021, or 2020.</span></div><div style="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%">2022</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%">2021</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%">2020</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%">2,016</span><span style="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%">1,345&#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%">1,365&#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%">17,693</span><span style="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%">13,535&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,387&#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%">34,796</span><span style="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,894&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,909&#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%">54,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;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%">43,774&#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%">42,661&#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><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>40
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927188640">
<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, 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>
</tr>
<tr class="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 PlanUnder 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,284,000 in 2022, $2,898,000 in 2021, and $2,636,000 in 2020. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.<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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 55<br> -Paragraph 17<br> -URI https://asc.fasb.org/extlink&amp;oid=123450688&amp;loc=d3e4179-114921<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section S99<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=21916913&amp;loc=d3e273930-122802<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -URI https://asc.fasb.org/topic&amp;trid=2235017<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 60<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=6414203&amp;loc=d3e39689-114964<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=123447040&amp;loc=d3e1928-114920<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>41
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927101776">
<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, 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>
</tr>
<tr class="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 $48,546,000 in 2022, $121,729,000 in 2021, and $39,425,000 in 2020. Foreign income before taxes was $202,149,000 in 2022, $197,171,000 in 2021, and $147,486,000 in 2020. </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 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%">2022</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%">2021</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%">2020</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%">48,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 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%">27,870&#160;</span></td><td style="background-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%">160&#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%">5,689</span><span style="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%">5,372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">921&#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%">10,243</span><span style="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%">8,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,197&#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%">64,287</span><span style="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%">41,648&#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%">14,278&#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;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%">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%">(40,772)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,266)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(18,266)</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%">(8,354)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(769)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(556)</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%">20,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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,406&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,269&#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%">(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 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%">(2,629)</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%">(3,553)</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%">35,170</span><span style="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%">39,019&#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%">10,725&#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><div style="margin-top:4pt;text-align:justify"><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%">2022</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%">2021</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%">2020</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 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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">(7)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"/></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 credit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">Discrete tax benefit related to employee stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"/></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 tax return filings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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 related to a rate revaluation on state 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:700;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"><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:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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 expense related to international tax reserves</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%">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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"/></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 benefit for audit settlements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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%">Limitation on executive 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%">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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">1&#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%">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-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%">12&#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%">6&#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-bottom:8pt;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 the reserve for income taxes, excluding gross 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="padding:2px 1pt;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 of reserve for income taxes as of December 31, 2020</span></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;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,952&#160;</span></td><td style="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%">Gross amounts of decreases in unrecognized tax benefits 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%">(280)</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%">Gross amounts of increases in unrecognized tax benefits 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%">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%">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current 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%">525&#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"/></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%">Gross amounts of decreases in unrecognized tax benefits 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%">(485)</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 of reserve for income taxes as of December 31, 2021</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%">13,812&#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%">Gross amounts of decreases in unrecognized tax benefits 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"/></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%">Gross amounts of increases in unrecognized tax benefits 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"/></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%">Gross amounts of increases in unrecognized tax benefits 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"/></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%">Gross amounts of decreases in unrecognized tax benefits 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"/></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%">Gross amounts of decreases in unrecognized tax benefits 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"/></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 of reserve for income taxes as of December 31, 2022</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%">13,647</span><span style="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><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 reserve for income taxes, including gross interest and penalties, was $15,866,000 and as of December 31, 2022, which is classified as a non-current liability. The Company's reserve for income taxes, including interest and penalties, was $15,808,000 as of December 31, 2021, which included $14,780,000 classified as a non-current liability and $1,028,000 recorded as a reduction to non-current deferred tax assets. The amount of gross interest and penalties included in these balances was $2,219,000 and $1,996,000 as of December&#160;31, 2022 and 2021, 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 $1,000,000 to $1,500,000 over the next twelve months.</span></div><div style="margin-bottom:8pt;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, and Korea and within the United States, Massachusetts. The statutory tax rate is 12.5% in Ireland, 25% in China, and 21.5% 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 7 percentage points for 2022, 5 percentage points for 2021, and 6 percentage points for 2020. Management has determined that earnings from its legal entity in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. </span></div><div style="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 </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2019 through 2021 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2017 through 2021 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. During 2022 the Company settled IRS audits for the tax years 2017 and 2018 which resulted in a net discrete tax </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">benefit. Additionally, the Company is under audit by the Commonwealth of Massachusetts for the amended returns filed for tax years 2017 and 2018. 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 $229,000, $281,000, and $340,000 in 2022, 2021, and 2020, 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%">Cash paid for income taxes totaled $57,016,000 in 2022, $49,435,000 in 2021, and $33,695,000 in 2020.</span></div><div style="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, 2022 and December 31, 2021 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%">2022</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%">2021</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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">386,221</span><span style="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%">404,526&#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%">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:10pt;font-weight:700;line-height:100%">21,962</span><span style="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%">15,279&#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%">Federal and state tax credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,284</span><span style="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%">11,051&#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%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,117</span><span style="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%">7,426&#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%">Bonuses, commissions, and other 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%">5,116</span><span style="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%">7,263&#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%">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%">2,119</span><span style="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%">5,395&#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 net operating 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:700;line-height:100%">53</span><span style="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%">751&#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%">16,889</span><span style="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%">&#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 2px 7.75pt;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%">15,102</span><span style="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%">9,023&#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%">463,863</span><span style="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 #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%">460,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"/></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%">(7,661)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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%">456,202</span><span style="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 #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%">452,526&#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: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%">(298,922)</span></td><td style="background-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%">(327,725)</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="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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%">Net deferred taxes</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%">157,280</span><span style="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%">124,801&#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="margin-bottom:8pt;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:6pt;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 15 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. Management </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%">expects an immaterial impact on its current effective tax rate excluding discrete items in future years as a result of this change.</span></div><div style="margin-bottom:8pt;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:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At December 31, 2022, the Company recorded a deferred tax asset resulting from the capitalization of research and development expenditures. Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to currently 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.</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</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> December 31, 2022, the Company had foreign net operating loss carryforwards of </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">$180,000</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, state tax credit carryforwards of $6,050,000, and </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">foreign tax credit carryforwards of $2,234,000.</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 December 31, 2022, the Company had a valuation allowance for state research and development tax credits of $6,869,000 that was not considered to be realizable. Should these credits be utilized in a future period, the reserve associated with these credits would be reversed in the period when it is determined that the credits can be utilized to offset future state income tax liabilities. As of December 31, 2022, the Company had state research and development tax credit carryforwards of $7,658,000, which will begin to expire for the 2032 tax return.</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%">While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax assets 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 taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI https://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>42
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927351936">
<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, 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>
</tr>
<tr class="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 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%">2022</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%">2021</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%">2020</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%">173,407</span><span style="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%">176,463&#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%">173,489&#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%">1,462</span><span style="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%">3,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:10pt;font-weight:400;line-height:100%">3,103&#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%">174,869</span><span style="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%">179,916&#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%">176,592&#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:6pt;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 4,715,104, 497,504, and 4,371,194 shares of common stock, on a weighted-average basis, were outstanding in 2022, 2021, and 2020, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 26,079, 605, and 3,826 shares of common stock, on a weighted-average basis, were outstanding in 2022, 2021, and 2020, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. No PRSUs were excluded in the calculation of dilutive net income per share in 2022, 2021, and 2020 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI https://asc.fasb.org/topic&amp;trid=2144383<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>43
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927178448">
<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, 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_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:4pt;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 makes decisions to allocate resources and assesses performance at the corporate level, without regard to geography, legal entity, or end market. The Company offers a variety of machine vision products that have similar economic characteristics, have the same production processes, 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 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, 2022</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%">343,835</span><span style="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%">234,643</span><span style="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%">227,447</span><span style="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%">200,165</span><span style="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%">1,006,090</span><span style="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%">66,928</span><span style="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%">14,725</span><span style="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%">1,334</span><span style="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,370</span><span style="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%">86,357</span><span style="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, 2021</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%">393,690&#160;</span></td><td style="background-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%">247,744&#160;</span></td><td style="background-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%">200,135&#160;</span></td><td style="background-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%">195,529&#160;</span></td><td style="background-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%">1,037,098&#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%">63,141&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,982&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">960&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,705&#160;</span></td><td style="background-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%">84,788&#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, 2020</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%">280,205&#160;</span></td><td style="background-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%">208,787&#160;</span></td><td style="background-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%">168,287&#160;</span></td><td style="background-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%">153,741&#160;</span></td><td style="background-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%">811,020&#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%">60,911&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,014&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,764&#160;</span></td><td style="background-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%">86,967&#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;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:4pt;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 11%, 17%, and 14% of total revenue in 2022, 2021, and 2020, respectively. Accounts receivable from this same customer accounted for 15% of total accounts receivable as of December 31, 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2022.</span></div><div style="margin-top:4pt;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% and 13% of total revenue in 2022 and 2020. Revenue from this customer was not greater than 10% of total revenue in 2021. Accounts receivable from this same customer accounted for 11% of total accounts receivable as of December 31, 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 34<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8981-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8721-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 26<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8844-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8657-108599<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8721-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI https://asc.fasb.org/topic&amp;trid=2134510<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>44
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927113872">
<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, 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_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 Acquisitions<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">SAC Sirius Advanced Cybernetics GmbH</span></div><div style="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 December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#8217;s capabilities in defect detection, and accelerate its growth trajectory with electric vehicle battery manufacturers. The purchase price of the acquisition was not material to the Company's 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:400;line-height:120%;text-decoration:underline">Sualab Co., Ltd.</span></div><div style="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 16, 2019, the Company acquired all the outstanding shares of Sualab Co., Ltd. ("Sualab"), a provider of deep learning-based vision software for industrial image analysis based in Korea. The total consideration of $193,638,000 included cash payments of $170,602,000 upon closing. In the fourth quarter of 2020, the Company recorded a credit to goodwill in the amount of $1,004,000 representing a purchase price adjustment. The remaining consideration consists of deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent, and is being recorded as compensation expense over the four-year period.</span></div>Deteriorating global economic conditions from the COVID-19 pandemic triggered a review of long-lived assets for potential impairment in the second quarter of 2020. This review resulted in intangible asset impairment charges totaling $19,571,000 in the second quarter of 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $10,070,000, $5,900,000, and $3,382,000, respectively.<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI https://asc.fasb.org/topic&amp;trid=2303972<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128092470&amp;loc=d3e4946-128472<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>45
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922646096">
<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, 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_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 from Fire<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 June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to assess the damage, resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. </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 result of the fire, the Company recorded $48,339,000 in gross losses in 2022, related to $37,663,000 of primarily Cognex-owned inventory that was destroyed or deemed to have a net realizable value of zero, $8,709,000 of primarily prepayments related to Cognex-designated components that were owned by the contract manufacturer and other assets, and $1,967,000 related to deleveraging of costs related to our distribution centers.</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%">Gross losses have been reduced by insurance proceeds received from the Company&#8217;s insurance carrier of $27,560,000 in the fourth quarter of 2022. Gross losses net of insurance recovery of $20,779,000 are presented in the caption &#8220;Loss from fire&#8221; on the Consolidated Statements of Operations.</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 of December 31, 2022 and through the date of financial statement issuance, management cannot yet estimate additional recoveries that could be available from the contract manufacturer. Any future, additional recoveries in excess of recognized losses will be treated as gain contingencies and will be recognized when the gain is realized or realizable. There can be no assurance, however, that additional insurance coverage and/or recoveries from the contract manufacturer will be available to cover the net loss from the fire.</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%">After considering all the relevant events and circumstances resulting from the fire, management does not believe that the carrying value of the Company exceeds its fair value, or that the carrying amount of the Company&#8217;s intangible assets may not be recoverable. As such, no goodwill or intangible asset impairment charges were recorded during 2022 as a result of the fire.</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_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-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_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>46
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927351936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [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_RestructuringAndRelatedActivitiesDisclosureTextBlock', window );">Restructuring Charges</a></td>
<td class="text">Restructuring Charges<div style="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">December 2022 Restructuring</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%">In December 2022, following its acquisition of SAC (refer to Note 21), the Company performed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities included a workforce reduction of 18 employees and the termination of certain operating lease contracts, and resulted in charges of $1,657,000 in 2022. These charges are included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations. As of December 31, 2022, the majority of these restructuring actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring plan.</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 following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):</span></div><div><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:72.876%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.194%"/><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="display:none"/><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%">Amount</span></td><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%">One-time termination benefits</span></td><td colspan="3" style="display:none"/><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%">1,584&#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="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%">Contract termination costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#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="display:none"/><td colspan="3" style="display:none"/><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 colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><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%">1,657</span><span style="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="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></table></div><div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#8217;s restructuring reserve related to the December 2022 Restructuring, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (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:100.000%"><tr><td style="width:1.0%"/><td style="width:52.701%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.104%"/><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.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="width:1.0%"/><td style="width:14.546%"/><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%">One-time Termination Benefits</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%">Contract Termination Costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><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%">Total</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%">Balance as of December 31, 2021</span></td><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:10pt;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:10pt;font-weight:400;line-height:100%">&#8212;&#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:10pt;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:10pt;font-weight:400;line-height:100%">&#8212;&#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="3" style="display:none"/><td colspan="3" style="display:none"/><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:10pt;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: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;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%">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:400;line-height:100%">1,584&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#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="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,657</span><span style="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%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(646)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(646)</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"/></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="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%">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%">26&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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</span><span style="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%">Balance as of December 31, 2022</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%">964</span><span style="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;border-top:1pt solid #000;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%">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 #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><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%">1,039</span><span style="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><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></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">May 2020 Restructuring</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 May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately 8% and office closures. The Company recorded restructuring charges from these actions totaling $15,924,000 in 2020 which are included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations. As of December 31, 2020, the majority of these actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring plan. There were no restructuring charges recognized in 2022 or 2021 related to this restructuring plan.</span></div><div style="text-align:justify"><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the restructuring charges for the year ended December 31, 2020 (in thousands):</span></div><div><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:72.876%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.194%"/><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="display:none"/><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%">Amount</span></td><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%">One-time termination benefits</span></td><td colspan="3" style="display:none"/><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%">10,159&#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="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%">Contract termination costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,207&#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 associated costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">558&#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="display:none"/><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%">15,924</span><span style="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="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></table></div><div style="margin-top:4pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One-time termination benefits included severance, health insurance, and outplacement services for 181 employees who were either terminated during the second quarter of 2020, or were notified during the second quarter of 2020 that they would be terminated at a future date. For employees not required to render service beyond a minimum retention period, the one-time termination benefits were recognized in the second quarter of 2020. Otherwise, these benefits, including retention bonuses for selected employees, were recognized over the remaining service period which was completed by December 31, 2020.</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%">Contract termination costs included operating lease asset impairment charges for eleven offices closed prior to the end of the contractual lease term. These costs also included the write-off of leasehold improvements and other equipment related to these abandoned offices that had no alternative use, as well as other associated operating costs, such as utilities, that the Company is obligated to pay for the remainder of the lease term. These contract termination costs were primarily recognized in the second quarter of 2020 when the Company ceased using the property for economic benefit. </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%">Other associated costs primarily included legal fees related to the employee termination actions, which were recognized when the services were performed. </span></div><div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#8217;s restructuring reserve related to the May 2020 Restructuring, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (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:100.000%"><tr><td style="width:1.0%"/><td style="width:38.227%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.104%"/><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.081%"/><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:12.788%"/><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:14.548%"/><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%">One-time Termination Benefits</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%">Contract Termination Costs</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%">Other Associated Costs</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%">Total</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%">Balance as of December 31, 2020</span></td><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:10pt;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:10pt;font-weight:400;line-height:100%">1,624&#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:10pt;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:10pt;font-weight:400;line-height:100%">750&#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:10pt;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:10pt;font-weight:400;line-height:100%">15&#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:10pt;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:10pt;font-weight:700;line-height:100%">2,389</span><span style="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"/></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="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 payments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,142)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,384)</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"/></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="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 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%">&#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:10pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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, 2021</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%">482</span><span style="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;border-top:1pt solid #000;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:700;line-height:100%">516</span><span style="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;border-top:1pt solid #000;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: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;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:700;line-height:100%">998</span><span style="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><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><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%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(482)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(747)</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"/></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="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%">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%">&#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: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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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)</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, 2022</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%">&#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;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;border-bottom:3pt double #000;border-top:1pt solid #000;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%">245</span><span style="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;border-bottom:3pt double #000;border-top:1pt solid #000;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%">&#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;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;border-bottom:3pt double #000;border-top:1pt solid #000;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%">245</span><span style="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><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_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_RestructuringAndRelatedActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.</p></div>
<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(e))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -URI https://asc.fasb.org/topic&amp;trid=2175745<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927448256">
<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, 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_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 EventsOn February 16, 2023, the Company's Board of Directors declared a cash dividend of $0.070 per share. The dividend is payable March 17, 2023 to all shareholders of record as of the close of business on March 3, 2023.<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -URI https://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>48
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062924936016">
<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, 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_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 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%">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%">776&#160;</span></td><td style="background-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%">191&#160;</span></td><td style="background-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%">(237)</span></td><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%">&#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: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"/></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%">2021</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%">831&#160;</span></td><td style="background-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%">&#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%">(55)</span></td><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%">&#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: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%">776&#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%">2020</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%">530&#160;</span></td><td style="background-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%">600&#160;</span></td><td style="background-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%">(300)</span></td><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%">1&#160;</span></td><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%">831&#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%">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%">1,518&#160;</span></td><td style="background-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%">&#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%">&#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: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 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"/></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%">2021</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%">1,291&#160;</span></td><td style="background-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%">227&#160;</span></td><td style="background-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: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 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%">1,518&#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%">2020</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%">1,291&#160;</span></td><td style="background-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%">&#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%">&#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: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 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,291&#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%">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%">8,188&#160;</span></td><td style="background-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%">2,234&#160;</span></td><td style="background-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%">3,889&#160;</span></td><td style="background-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%">(6,650)</span></td><td style="background-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%">7,661&#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%">2021</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%">8,568&#160;</span></td><td style="background-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%">1,420&#160;</span></td><td style="background-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%">(1,800)</span></td><td style="background-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%">8,188&#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%">2020</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%">7,312&#160;</span></td><td style="background-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%">1,256&#160;</span></td><td style="background-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%">&#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%">&#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%">8,568&#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><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> -Publisher SEC<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 12<br> -Subsection 09<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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>49
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921377840">
<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, 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>
</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, investments, stock-based compensation, 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. It is the Company&#8217;s policy to invest in investment-grade debt securities with effective maturities that do not exceed ten 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%">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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and </span></div>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></span>
</td>
</tr>
<tr class="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. It is the Company&#8217;s policy to invest in investment-grade debt securities with effective maturities that do not exceed ten 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%">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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and </span></div>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></span>
</td>
</tr>
<tr class="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:9pt;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><span></span>
</td>
</tr>
<tr class="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; useful lives are 39 years, building improvements&#8217; useful lives are 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131">two</span> to ten years. 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><span></span>
</td>
</tr>
<tr class="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>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></span>
</td>
</tr>
<tr class="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 12 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, through year ended December 31, 2022, was estimated using the three-month London Interbank Offered Rate (LIBOR) 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 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 would proceed 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 </span></div>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 distribution networks range from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06">eleven</span> to twelve years, completed technologies from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5">five</span> to eight years, customer relationships from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6">five</span> to eight years, non-compete agreements from <span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7">three</span> to seven years, and trademarks two 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2">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">Derivative InstrumentsDerivative 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. The Company recognizes all derivative instruments as either current assets or current liabilities at fair value on the Consolidated Balance Sheets. 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 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. These solutions are provided to customers in a variety of industries, including the consumer electronics and logistics industries. </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 typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. 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 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 objectively 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 </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%">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 objectively 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 revenue recognition criteria, 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 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 a contract 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">Research and DevelopmentResearch 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,257,000 in 2022, $1,965,000 in 2021, and $1,443,000 in 2020.</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 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>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></span>
</td>
</tr>
<tr class="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, or 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%">Only 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 not classified as current. 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.</span></div><div style="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 Tax Cuts and Jobs Act of 2017 imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax. In 2019, the Company elected to account for the impact of the GILTI minimum tax in deferred taxes, a change from the Company&#8217;s initial election made in 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. The change is considered preferable, as it appropriately matches the Company&#8217;s current and deferred income tax implications.</span></div><div style="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 $48,050,000 and $43,665,000, as of December 31, 2022 and December 31, 2021, respectively; net unrealized losses on available-for-sale investments of $19,976,000 and $3,006,000 as of December 31, 2022 and December 31, 2021, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,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%">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%">Amounts reclassified from accumulated other comprehensive loss, net of tax, to investment income on the Consolidated Statements of Operations were net realized gains (losses) of $(182,000), $236,000, and $4,119,000 for 2022, 2021, and 2020, respectively.</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 safety and liquidity. The Company has historically not experienced any significant realized losses on its debt 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 has two large customers that each represented 11% of total revenue in 2022. These two customers combined represented 17% of total accounts receivable as of December 31, 2022. 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. Our contract manufacturer's 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. On June 7, 2022, this contract manufacturer suffered a fire at its Indonesian plant destroying a large portion of the Company's component inventories. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,000. Refer to Note 22 for further information on this event and the charges recorded in "Loss from Fire" 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%">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 Acquisitions</span></div><div style="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 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 primarily establishes fair value using the income approach based on a discounted cash flow model. The income approach requires the use of many assumptions and estimates including future revenues and expenses, as well as discount factors. Contingent consideration liabilities are reported at their estimated fair values based on probability-adjusted present values of the consideration expected to be paid, using significant inputs and estimates. Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain milestones and discount rates consistent with the level of risk of achievement. The fair values of these contingent consideration liabilities are remeasured </span></div>each reporting period with changes in fair value included in "Other income (expense)" on the Consolidated Statements of Operations. 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_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy', window );">Restructuring Charges</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">Restructuring 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%">One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#8220;communication date&#8221;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.</span></div>Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.<span></span>
</td>
</tr>
<tr class="re">
<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: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">Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"</span></div><div style="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 these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.</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">Accounting Standards Update (ASU) 2021-08, "Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers"</span></div>The amendments in this ASU primarily address the accounting for contract assets and contract liabilities related to revenue contracts with customers in a business combination. The ASU clarifies that an acquirer should account for the related revenue contracts in accordance with Accounting Standards Codification 606 as if the acquirer had originated the contracts. The amendments in this ASU are effective for fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, although early adoption is permitted. The amendments in the ASU should be applied prospectively to business combinations occurring on or after the effective date of the amendments. Management adopted this ASU on December 1, 2022 and the adoption did not have a material impact on the Company's financial statements and disclosures.<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-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_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-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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI https://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4273-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 450<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6491354&amp;loc=d3e6049-115624<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost associated with exit or disposal activity or restructuring. Excludes entity newly acquired in business combination and discontinued operation.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 5.P.3,4)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=d3e41620-113959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=d3e41638-113959<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5579245-113959<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=d3e41675-113959<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(n))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5579240-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 60<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=7493716&amp;loc=d3e21868-110260<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13279-108611<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -URI https://asc.fasb.org/topic&amp;trid=2175825<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -URI https://asc.fasb.org/subtopic&amp;trid=2144439<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32247-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32847-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL116659661-227067<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32280-109318<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 920<br> -SubTopic 350<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=120155617&amp;loc=SL120155638-234783<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 920<br> -SubTopic 350<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=120155617&amp;loc=SL120155628-234783<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 920<br> -SubTopic 350<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=120155617&amp;loc=SL120155628-234783<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 40<br> -Section 30<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=118172244&amp;loc=d3e17916-109280<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 50<br> -Section 25<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=16397303&amp;loc=d3e19379-109286<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 330<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126900757&amp;loc=d3e543-108305<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918666-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 50<br> -Section 25<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=16397303&amp;loc=d3e19347-109286<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 40<br> -Section 30<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=118172244&amp;loc=d3e17916-109280<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -URI https://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e4975-111524<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5212-111524<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=SL6953423-111524<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5093-111524<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5033-111524<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10133-111534<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>50
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927283440">
<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, 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_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, 2022 (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%">415&#160;</span></td><td style="background-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%">&#8212;&#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%">&#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:10pt;font-weight:400;line-height:100%">538,495&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 2px 7.75pt;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%">&#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:10pt;font-weight:400;line-height:100%">60,429&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,546&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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%">Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">&#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:10pt;font-weight:400;line-height:100%">1,924&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">&#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:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">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%">&#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:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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><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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>51
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921055232">
<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, 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>
</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 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%">2022</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%">2021</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%">180,959</span><span style="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%">185,624&#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%">415</span><span style="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%">537&#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%">181,374</span><span style="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%">186,161&#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%">164,055</span><span style="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%">73,088&#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%">26,890</span><span style="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%">37,655&#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%">Agency 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%">15,858</span><span style="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%">2,802&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">11,332</span><span style="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%">18,912&#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%">Municipal 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%">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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,998&#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="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%">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%">218,759</span><span style="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%">137,455&#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;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%">374,440</span><span style="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%">481,218&#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%">Treasury bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,214</span><span style="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%">39,753&#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%">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:700;line-height:100%">33,539</span><span style="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%">43,940&#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%">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:700;line-height:100%">1,924</span><span style="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%">2,119&#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%">Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,077&#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%">Municipal 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: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%">641&#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-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%">454,117</span><span style="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%">583,748&#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:0 1pt"/><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%">854,250</span><span style="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 #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:#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:400;line-height:100%">907,364&#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"/></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, 2022 (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%">167,558&#160;</span></td><td style="background-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%">(3,503)</span></td><td style="background-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%">164,055&#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%">27,607&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(717)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,890&#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:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency 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%">16,143&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,602&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(270)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,332&#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%">Municipal 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%">635&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#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;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%">394,576&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">561&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,697)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">374,440&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,333&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(198)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,214&#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%">35,144&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,708)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,539&#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%">2,095&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(171)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,924&#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%">699,693</span><span style="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%">743</span><span style="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%">(27,560)</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%">672,876</span><span style="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><span></span>
</td>
</tr>
<tr class="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"><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%">285,087&#160;</span></td><td style="background-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%">(9,591)</span></td><td style="background-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%">187,153&#160;</span></td><td style="background-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%">(14,609)</span></td><td style="background-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%">472,240&#160;</span></td><td style="background-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%">(24,200)</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%">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%">47,582&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,495&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,077&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,425)</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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,614&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(465)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">102&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,716&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(468)</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%">Agency 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%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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%">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%">967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(67)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">957&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(104)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,924&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(171)</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%">Municipal 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%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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 #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%">382,732</span><span style="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%">(12,718)</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%">190,707</span><span style="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%">(14,842)</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%">573,439</span><span style="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%">(27,560)</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><span></span>
</td>
</tr>
<tr class="re">
<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, 2022 (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%">164,055&#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%">167,661&#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%">94,417&#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%">63,101&#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%">48,796&#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%">465&#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%">538,495&#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%">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%">26,890&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,755&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,587&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,197&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,429&#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 bills</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,332&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,429&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,384&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,758&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,546&#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="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%">Agency 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%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,858&#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%">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%">&#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:10pt;font-weight:400;line-height:100%">967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">957&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,924&#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%">Municipal 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%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#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 #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%">218,759</span><span style="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%">183,812</span><span style="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%">114,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:#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%">89,056</span><span style="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%">66,439</span><span style="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%">465</span><span style="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%">672,876</span><span style="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><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-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_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_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/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27290-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>52
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927128960">
<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, 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_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 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%">2022</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%">2021</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%">71,720</span><span style="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%">50,452&#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%">906</span><span style="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%">5,293&#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%">49,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57,357&#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%">122,480</span><span style="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%">113,102&#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><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>53
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927363984">
<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, 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_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 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%">2022</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%">2021</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%">3,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;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%">3,951&#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%">24,533</span><span style="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%">24,533&#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%">45,003</span><span style="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%">47,886&#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%">14,491</span><span style="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%">10,436&#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%">53,663</span><span style="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%">50,748&#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%">27,176</span><span style="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%">30,562&#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%">6,378</span><span style="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%">6,449&#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%">175,195</span><span style="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%">174,565&#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%">(95,481)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(97,019)</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%">79,714</span><span style="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%">77,546&#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><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>54
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062918644112">
<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, 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_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 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%">2023</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%">9,473&#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%">2024</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%">6,935&#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%">2025</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%">4,975&#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%">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%">3,791&#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%">3,353&#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%">15,809&#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%">44,336</span><span style="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><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>55
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921100272">
<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, 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_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 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, 2020</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%">244,078&#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="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%">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%">(2,365)</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"/></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, 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">241,713&#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%">Acquisition of SAC Sirius Advanced Cybernetics GmbH (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%">2,359&#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%">&#160;&#160;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%">(1,442)</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, 2022</span></td><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%">242,630</span><span style="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><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1A<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=SL108378252-109267<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13854-109267<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>56
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062924915168">
<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, 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_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 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%">Completed technologies</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%">28,017</span><span style="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%">(17,744)</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%">10,273</span><span style="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><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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,838</span><span style="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,860)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,978</span><span style="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 2px 7.75pt;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: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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(177)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">163</span><span style="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="display:none"/><td colspan="3" style="display:none"/><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, 2022</span></td><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:10pt;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:10pt;font-weight:700;line-height:100%">34,195</span><span style="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 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:10pt;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:10pt;font-weight:700;line-height:100%">(21,781)</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:10pt;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:10pt;font-weight:700;line-height:100%">12,414</span><span style="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"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;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:'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:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</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:700;line-height:100%">Accumulated<br/>Amortization</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: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%">Completed technologies</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: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%">24,217&#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%">(15,234)</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%">8,983&#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%">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%">10,578&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,891)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,687&#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 7.75pt;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%">710&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(492)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">218&#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%">Distribution networks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,060&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,060)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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:400;line-height:100%">110&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(110)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">Balance as of December 31, 2021</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: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%">73,675&#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%">(61,787)</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%">11,888&#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><span></span>
</td>
</tr>
<tr class="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 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%">2023</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%">3,137&#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%">2024</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%">2,623&#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%">2025</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%">2,300&#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%">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%">1,995&#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%">1,273&#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%">1,086&#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%">12,414</span><span style="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><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>57
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062924908800">
<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, 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_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 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%">2022</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%">2021</span></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%">Deferred payments related to Sualab Co., Ltd. acquisition (1)</span></div></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%">19,282</span><span style="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%">&#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"/></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%">Incentive 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%">18,554</span><span style="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%">37,917&#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%">Salaries and payroll 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:10pt;font-weight:700;line-height:100%">8,121</span><span style="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%">8,519&#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%">7,191</span><span style="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%">7,572&#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%">5,847</span><span style="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%">4,686&#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%">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:700;line-height:100%">4,375</span><span style="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%">5,427&#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%">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%">29,865</span><span style="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,311&#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%">93,235</span><span style="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%">92,432&#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="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) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent. The deferred payments are being recorded as compensation expense over the four-year period, and the accrued balance was reclassified from "Other Liabilities" to "Accrued expenses" on the Consolidated Balance Sheets in the fourth quarter of 2022 when the liability became current.</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_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Changes in Warranty Obligations</a></td>
<td class="text"><div style="margin-top:4pt"><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 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="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, 2020</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,406&#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%">3,256&#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%">(3,235)</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;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 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%">5,427&#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%">1,876&#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%">(2,928)</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"/></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, 2022</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: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%">4,375</span><span style="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"/></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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>58
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062925173968">
<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, 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_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: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 (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, 2022</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, 2021</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%">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:400;line-height:100%">60,000&#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%">64,174&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">65,000&#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%">73,748&#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:400;line-height:100%">185,000&#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%">9,480&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">140,000&#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%">6,842&#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:400;line-height:100%">55,000&#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%">7,619&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,374&#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%">8,500&#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:400;line-height:100%">700,000&#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%">5,281&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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:#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%">5,213&#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:400;line-height:100%">1,590,000&#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%">4,238&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,355,000&#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%">4,155&#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:400;line-height:100%">3,445&#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%">4,161&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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:#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%">4,552&#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:400;line-height:100%">1,730&#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%">1,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,480&#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%">1,167&#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:400;line-height:100%">1,120&#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%">1,218&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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><span></span>
</td>
</tr>
<tr class="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:4pt;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, 2022</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, 2021</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, 2022</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, 2021</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%">27</span><span style="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%">39&#160;</span></td><td style="background-color:#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%">479</span><span style="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%">230&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></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:4pt"><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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec"><span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00">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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2"><span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c">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, 2022</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, 2021</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, 2022</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, 2021</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%">27</span><span style="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%">39&#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%">479</span><span style="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%">230&#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%">&#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="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 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%">&#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="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">27</span><span style="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%">39&#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%">479</span><span style="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%">230&#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><span></span>
</td>
</tr>
<tr class="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:4pt;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%">2022</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%">2021</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%">2020</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%">9,823</span><span style="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%">4,262&#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%">(12,308)</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><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225877-175312<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4E<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5624181-113959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5618551-113959<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4C<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5624171-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5624163-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5579245-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>59
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927310480">
<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, 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_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:6pt"><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%">2022</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%">2021</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%">2020</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%">390,573</span><span style="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%">435,220&#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%">310,027&#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%">234,643</span><span style="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%">247,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,787&#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%">227,447</span><span style="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%">200,135&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">168,287&#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%">153,427</span><span style="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%">153,999&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">123,919&#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%">1,006,090</span><span style="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%">1,037,098&#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%">811,020&#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:6pt;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%">2022</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%">2021</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%">2020</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%">848,153</span><span style="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%">889,253&#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%">674,830&#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%">157,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">147,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">136,190&#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%">1,006,090</span><span style="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%">1,037,098&#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%">811,020&#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><span></span>
</td>
</tr>
<tr class="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:9pt;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, 2020</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%">831&#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%">&#8212;&#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%">(55)</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%">&#8212;&#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, 2021</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%">776&#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%">191&#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%">(237)</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%">&#8212;&#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, 2022</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%">730</span><span style="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><span></span>
</td>
</tr>
<tr class="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:3pt"><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, 2020</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%">21,274&#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%">31,907&#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%">(17,403)</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%">(35)</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, 2021</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%">35,743&#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%">39,076&#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%">(31,520)</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%">(2,512)</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, 2022</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%">40,787</span><span style="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><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/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11B<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=SL6953423-111524<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>60
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923128464">
<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, 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>
</tr>
<tr class="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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2021</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%">7,610&#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%">49.38&#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%">1,418&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">59.63&#160;</span></td><td style="background-color:#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%">(365)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33.58&#160;</span></td><td style="background-color:#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%">(196)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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.90&#160;</span></td><td style="background-color:#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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2022</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%">8,467</span><span style="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%">51.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="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%">6.13</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%">31,327</span><span style="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%">Exercisable as of December 31, 2022</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%">4,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-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%">44.71</span><span style="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%">4.94</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%">31,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;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"><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;<br/>&#160;December 31, 2022 (1)</span></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%">8,038</span><span style="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%">51.10</span><span style="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%">6.01</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%">31,224</span><span style="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:4pt;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><span></span>
</td>
</tr>
<tr class="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"><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%">2022</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%">2021</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%">2020</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%">2.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;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%">1.3&#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%">1.4&#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.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"><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%">0.27&#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%">0.41&#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%">37</span><span style="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%">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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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%">5.5</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%">6.0</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%">6.0</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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2021</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%">823&#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%">65.26&#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%">715&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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.06&#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%">(192)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61.96&#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%">(77)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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.65&#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%">Nonvested as of December 31, 2022</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%">1,269</span><span style="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%">61.74</span><span style="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><span></span>
</td>
</tr>
<tr class="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: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">Performance Restricted Stock Units (PRSUs)</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 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"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2021</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%">&#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 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%">&#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"/></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%">33&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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.49&#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%">&#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: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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">Nonvested as of December 31, 2022</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%">33</span><span style="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%">62.49</span><span style="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><span></span>
</td>
</tr>
<tr class="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 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%">2022</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%">2021</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%">2020</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%">2,016</span><span style="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%">1,345&#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%">1,365&#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%">17,693</span><span style="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%">13,535&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,387&#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%">34,796</span><span style="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,894&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,909&#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%">54,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;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%">43,774&#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%">42,661&#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><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>61
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921163216">
<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, 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>
</tr>
<tr class="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 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%">2022</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%">2021</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%">2020</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%">48,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 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%">27,870&#160;</span></td><td style="background-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%">160&#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%">5,689</span><span style="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%">5,372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">921&#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%">10,243</span><span style="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%">8,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,197&#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%">64,287</span><span style="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%">41,648&#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%">14,278&#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;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%">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%">(40,772)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,266)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(18,266)</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%">(8,354)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(769)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(556)</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%">20,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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,406&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,269&#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%">(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 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%">(2,629)</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%">(3,553)</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%">35,170</span><span style="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%">39,019&#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%">10,725&#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><span></span>
</td>
</tr>
<tr class="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:4pt;text-align:justify"><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%">2022</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%">2021</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%">2020</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 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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">(7)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"/></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 credit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">Discrete tax benefit related to employee stock options</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"/></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 tax return filings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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 related to a rate revaluation on state 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:700;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"><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:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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 expense related to international tax reserves</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%">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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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"/></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 benefit for audit settlements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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="display:none"/><td colspan="3" style="display:none"/><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%">Limitation on executive 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%">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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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"/></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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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%">1&#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%">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-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%">12&#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%">6&#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_SummaryOfIncomeTaxContingenciesTextBlock', window );">Changes in the Reserve for Income Taxes, Excluding Interest and Penalties</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 the reserve for income taxes, excluding gross 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="padding:2px 1pt;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 of reserve for income taxes as of December 31, 2020</span></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="padding:2px 0;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,952&#160;</span></td><td style="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%">Gross amounts of decreases in unrecognized tax benefits 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%">(280)</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%">Gross amounts of increases in unrecognized tax benefits 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%">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%">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current 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%">525&#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"/></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%">Gross amounts of decreases in unrecognized tax benefits 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%">(485)</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 of reserve for income taxes as of December 31, 2021</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%">13,812&#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%">Gross amounts of decreases in unrecognized tax benefits 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"/></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%">Gross amounts of increases in unrecognized tax benefits 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"/></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%">Gross amounts of increases in unrecognized tax benefits 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"/></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%">Gross amounts of decreases in unrecognized tax benefits 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"/></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%">Gross amounts of decreases in unrecognized tax benefits 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"/></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 of reserve for income taxes as of December 31, 2022</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%">13,647</span><span style="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><span></span>
</td>
</tr>
<tr class="re">
<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, 2022 and December 31, 2021 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%">2022</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%">2021</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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">386,221</span><span style="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%">404,526&#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%">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:10pt;font-weight:700;line-height:100%">21,962</span><span style="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%">15,279&#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%">Federal and state tax credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,284</span><span style="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%">11,051&#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%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,117</span><span style="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%">7,426&#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%">Bonuses, commissions, and other 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%">5,116</span><span style="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%">7,263&#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%">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%">2,119</span><span style="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%">5,395&#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 net operating 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:700;line-height:100%">53</span><span style="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%">751&#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%">16,889</span><span style="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%">&#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 2px 7.75pt;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%">15,102</span><span style="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%">9,023&#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%">463,863</span><span style="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 #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%">460,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"/></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%">(7,661)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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%">456,202</span><span style="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 #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%">452,526&#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: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%">(298,922)</span></td><td style="background-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%">(327,725)</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="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;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%">Net deferred taxes</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%">157,280</span><span style="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%">124,801&#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><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_SummaryOfIncomeTaxContingenciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax positions taken in the tax returns filed or to be filed for which it is more likely than not that the tax position will not be sustained upon examination by taxing authorities and other income tax contingencies. Includes, but is not limited to, interest and penalties, reconciliation of unrecognized tax benefits, unrecognized tax benefits that would affect the effective tax rate, tax years that remain subject to examination by tax jurisdictions, and information about positions for which it is reasonably possible that amounts unrecognized will significantly change within 12 months.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfIncomeTaxContingenciesTextBlock</td>
</tr>
<tr>
<td style="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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927293584">
<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, 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>
</tr>
<tr class="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 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%">2022</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%">2021</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%">2020</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%">173,407</span><span style="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%">176,463&#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%">173,489&#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%">1,462</span><span style="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%">3,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:10pt;font-weight:400;line-height:100%">3,103&#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%">174,869</span><span style="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%">179,916&#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%">176,592&#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><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>63
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140063030949696">
<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, 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_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 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, 2022</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%">343,835</span><span style="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%">234,643</span><span style="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%">227,447</span><span style="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%">200,165</span><span style="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%">1,006,090</span><span style="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%">66,928</span><span style="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%">14,725</span><span style="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%">1,334</span><span style="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,370</span><span style="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%">86,357</span><span style="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, 2021</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%">393,690&#160;</span></td><td style="background-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%">247,744&#160;</span></td><td style="background-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%">200,135&#160;</span></td><td style="background-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%">195,529&#160;</span></td><td style="background-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%">1,037,098&#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%">63,141&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,982&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">960&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,705&#160;</span></td><td style="background-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%">84,788&#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, 2020</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%">280,205&#160;</span></td><td style="background-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%">208,787&#160;</span></td><td style="background-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%">168,287&#160;</span></td><td style="background-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%">153,741&#160;</span></td><td style="background-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%">811,020&#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%">60,911&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,014&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,764&#160;</span></td><td style="background-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%">86,967&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>64
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927188080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges (Tables)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [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_ScheduleOfRestructuringAndRelatedCostsTextBlock', window );">Restructuring and Related Costs</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%">The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):</span></div><div><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:72.876%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.194%"/><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="display:none"/><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%">Amount</span></td><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%">One-time termination benefits</span></td><td colspan="3" style="display:none"/><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%">1,584&#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="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%">Contract termination costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#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="display:none"/><td colspan="3" style="display:none"/><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 colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><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%">1,657</span><span style="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="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></table></div><span></span>
</td>
<td class="text"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the restructuring charges for the year ended December 31, 2020 (in thousands):</span></div><div><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:72.876%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.194%"/><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="display:none"/><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%">Amount</span></td><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%">One-time termination benefits</span></td><td colspan="3" style="display:none"/><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%">10,159&#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="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%">Contract termination costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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,207&#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 associated costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">558&#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="display:none"/><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%">15,924</span><span style="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="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></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_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of Restructuring Reserve by Type of Cost</a></td>
<td class="text"><div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#8217;s restructuring reserve related to the December 2022 Restructuring, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (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:100.000%"><tr><td style="width:1.0%"/><td style="width:52.701%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.104%"/><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.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="width:1.0%"/><td style="width:14.546%"/><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%">One-time Termination Benefits</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%">Contract Termination Costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><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%">Total</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%">Balance as of December 31, 2021</span></td><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:10pt;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:10pt;font-weight:400;line-height:100%">&#8212;&#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:10pt;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:10pt;font-weight:400;line-height:100%">&#8212;&#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="3" style="display:none"/><td colspan="3" style="display:none"/><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:10pt;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: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;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%">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:400;line-height:100%">1,584&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#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="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,657</span><span style="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%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(646)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(646)</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"/></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="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%">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%">26&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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</span><span style="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%">Balance as of December 31, 2022</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%">964</span><span style="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;border-top:1pt solid #000;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%">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 #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><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%">1,039</span><span style="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><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></table></div><div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#8217;s restructuring reserve related to the May 2020 Restructuring, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (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:100.000%"><tr><td style="width:1.0%"/><td style="width:38.227%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.104%"/><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.081%"/><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:12.788%"/><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:14.548%"/><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%">One-time Termination Benefits</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%">Contract Termination Costs</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%">Other Associated Costs</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%">Total</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%">Balance as of December 31, 2020</span></td><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:10pt;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:10pt;font-weight:400;line-height:100%">1,624&#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:10pt;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:10pt;font-weight:400;line-height:100%">750&#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:10pt;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:10pt;font-weight:400;line-height:100%">15&#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:10pt;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:10pt;font-weight:700;line-height:100%">2,389</span><span style="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"/></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="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 payments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,142)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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,384)</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"/></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="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 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%">&#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:10pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</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, 2021</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%">482</span><span style="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;border-top:1pt solid #000;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:700;line-height:100%">516</span><span style="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;border-top:1pt solid #000;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: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;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:700;line-height:100%">998</span><span style="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><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><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%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(482)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(747)</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"/></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="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%">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%">&#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: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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;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)</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, 2022</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%">&#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;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;border-bottom:3pt double #000;border-top:1pt solid #000;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%">245</span><span style="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;border-bottom:3pt double #000;border-top:1pt solid #000;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%">&#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;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;border-bottom:3pt double #000;border-top:1pt solid #000;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%">245</span><span style="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><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_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_ScheduleOfRestructuringAndRelatedCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 costs incurred for restructuring including, but not limited to, exit and disposal activities, remediation, implementation, integration, asset impairment, and charges against earnings from the write-down of 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 5.P.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.P.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost. This element may also include a description of any reversal and other adjustment made during the period to the amount of an accrued liability for restructuring activities. This element may be used to encapsulate the roll forward presentations of an entity's restructuring reserve by type of cost and in total, and explanation of changes that occurred in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062918703776">
<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, 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_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">10 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]</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">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="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">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="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">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="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">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="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_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Minimum [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">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="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>
</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-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_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>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_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>duration</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=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_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=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>66
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921378928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Intangible Assets (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DistributionRightsMember', window );">Distribution Rights [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">11 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_DistributionRightsMember', window );">Distribution Rights [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">12 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">8 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">8 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">3 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 [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">2 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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>duration</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>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_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_DistributionRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DistributionRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_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_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>67
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922219648">
<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, 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_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>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_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>68
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922928864">
<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, 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_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>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_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>69
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927190736">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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,257,000<span></span>
</td>
<td class="nump">$ 1,965,000<span></span>
</td>
<td class="nump">$ 1,443,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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>70
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922803008">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 48,050,000<span></span>
</td>
<td class="nump">$ 43,665,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="nump">19,976,000<span></span>
</td>
<td class="nump">3,006,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">(182,000)<span></span>
</td>
<td class="nump">236,000<span></span>
</td>
<td class="nump">$ 4,119,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">$ (182,000)<span></span>
</td>
<td class="nump">$ 236,000<span></span>
</td>
<td class="nump">$ 4,119,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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e681-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e681-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5A<br> -URI https://asc.fasb.org/extlink&amp;oid=123594809&amp;loc=SL116692626-108610<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669686-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>Current period adjustment resulting from gains and losses on intercompany foreign currency transactions that are of a long-term-investment nature because settlement is not planned or anticipated in the foreseeable future. Resulting from the entities to the transaction being consolidated, combined, or accounted for by the equity method in the reporting 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 35<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123602790&amp;loc=d3e30304-110892<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32211-110900<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e689-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27357-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17A<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL34724391-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>71
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923067920">
<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, 2022 </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">$ 415<span></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 bills</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_AgencyBondsFairValueDisclosure', window );">Agency bonds</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_SovereignBondsFairValueDisclosure', window );">Sovereign 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_MunicipalBondsFairValueDisclosure', window );">Municipal 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">538,495<span></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 bills</a></td>
<td class="nump">55,546<span></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">60,429<span></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_AgencyBondsFairValueDisclosure', window );">Agency bonds</a></td>
<td class="nump">15,858<span></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_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">1,924<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MunicipalBondsFairValueDisclosure', window );">Municipal bonds</a></td>
<td class="nump">624<span></span>
</td>
</tr>
<tr class="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">27<span></span>
</td>
</tr>
<tr class="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">479<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 bills</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_AgencyBondsFairValueDisclosure', window );">Agency bonds</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_SovereignBondsFairValueDisclosure', window );">Sovereign 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_MunicipalBondsFairValueDisclosure', window );">Municipal 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_AgencyBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Agency 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_AgencyBondsFairValueDisclosure</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_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_MunicipalBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Municipal 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_MunicipalBondsFairValueDisclosure</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>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_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>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_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>72
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921208224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">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>Jun. 28, 2020</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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_OperatingLeaseImpairmentLoss', window );">Operating lease asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 3,427,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_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="nump">$ 19,571,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 19,571,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_GViVenturesInc.Member', window );">GVi Ventures, Inc.</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems', window );"><strong>Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue', window );">Fair value</a></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="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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems</td>
</tr>
<tr>
<td style="padding-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_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126976982&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OperatingLeaseImpairmentLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 loss from impairment of right-of-use asset 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 25<br> -Paragraph 6<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123399704&amp;loc=SL77918431-209957<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseImpairmentLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_GViVenturesInc.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_GViVenturesInc.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922862224">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 180,959<span></span>
</td>
<td class="nump">$ 185,624<span></span>
</td>
</tr>
<tr class="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">415<span></span>
</td>
<td class="nump">537<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">181,374<span></span>
</td>
<td class="nump">186,161<span></span>
</td>
</tr>
<tr class="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">218,759<span></span>
</td>
<td class="nump">137,455<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">454,117<span></span>
</td>
<td class="nump">583,748<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">854,250<span></span>
</td>
<td class="nump">907,364<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">11,332<span></span>
</td>
<td class="nump">18,912<span></span>
</td>
</tr>
<tr class="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">44,214<span></span>
</td>
<td class="nump">39,753<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">26,890<span></span>
</td>
<td class="nump">37,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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">33,539<span></span>
</td>
<td class="nump">43,940<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">164,055<span></span>
</td>
<td class="nump">73,088<span></span>
</td>
</tr>
<tr class="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">374,440<span></span>
</td>
<td class="nump">481,218<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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">1,924<span></span>
</td>
<td class="nump">2,119<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_MunicipalBondsMember', window );">Municipal 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_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">624<span></span>
</td>
<td class="nump">4,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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">641<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=cgnx_AgencyBondsMember', window );">Agency 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_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">15,858<span></span>
</td>
<td class="nump">2,802<span></span>
</td>
</tr>
<tr class="ro">
<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">$ 16,077<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124260329&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124260329&amp;loc=d3e26626-111562<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section 45<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=118262064&amp;loc=SL116631418-115840<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section 45<br> -Paragraph 21<br> -URI https://asc.fasb.org/extlink&amp;oid=118262064&amp;loc=SL116631419-115840<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921778624">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 160,611<span></span>
</td>
<td class="nump">$ 142,009<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">3,620<span></span>
</td>
<td class="nump">3,037<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 losses</a></td>
<td class="nump">133<span></span>
</td>
<td class="nump">246<span></span>
</td>
<td class="nump">$ 4,283<span></span>
</td>
</tr>
<tr class="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 gains</a></td>
<td class="nump">$ 315<span></span>
</td>
<td class="nump">$ 10<span></span>
</td>
<td class="nump">$ 164<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922900-210455<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922900-210455<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27357-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27357-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>75
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062918181680">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)<br> $ in Thousands</strong></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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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">$ 699,693<span></span>
</td>
</tr>
<tr class="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">743<span></span>
</td>
</tr>
<tr class="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">(27,560)<span></span>
</td>
</tr>
<tr class="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">672,876<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>
</tr>
<tr class="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>
</tr>
<tr class="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,546<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>
</tr>
<tr class="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>
</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">44,333<span></span>
</td>
</tr>
<tr class="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">79<span></span>
</td>
</tr>
<tr class="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">(198)<span></span>
</td>
</tr>
<tr class="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">44,214<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>
</tr>
<tr class="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>
</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">11,602<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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">(270)<span></span>
</td>
</tr>
<tr class="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">11,332<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>
</tr>
<tr class="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>
</tr>
<tr class="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">60,429<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>
</tr>
<tr class="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>
</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">35,144<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">103<span></span>
</td>
</tr>
<tr class="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">(1,708)<span></span>
</td>
</tr>
<tr class="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">33,539<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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>
</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">27,607<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(717)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">26,890<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">538,495<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>
</tr>
<tr class="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>
</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">394,576<span></span>
</td>
</tr>
<tr class="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">561<span></span>
</td>
</tr>
<tr class="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">(20,697)<span></span>
</td>
</tr>
<tr class="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">374,440<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>
</tr>
<tr class="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>
</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">167,558<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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,503)<span></span>
</td>
</tr>
<tr class="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">164,055<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>
</tr>
<tr class="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>
</tr>
<tr class="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">1,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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>
</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">2,095<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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">(171)<span></span>
</td>
</tr>
<tr class="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">1,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">624<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_MunicipalBondsMember', window );">Municipal Bonds [Member] | Short-term Investments [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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">635<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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">(11)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">624<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=cgnx_AgencyBondsMember', window );">Agency Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">15,858<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds [Member] | Short-term Investments [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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">16,143<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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">(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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 15,858<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124260329&amp;loc=d3e26610-111562<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062916922688">
<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)<br> $ in Thousands</strong></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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">$ 382,732<span></span>
</td>
</tr>
<tr class="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">(12,718)<span></span>
</td>
</tr>
<tr class="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">190,707<span></span>
</td>
</tr>
<tr class="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,842)<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">573,439<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">(27,560)<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>
</tr>
<tr class="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>
</tr>
<tr class="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">32,614<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(465)<span></span>
</td>
</tr>
<tr class="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">102<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(3)<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">32,716<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">(468)<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>
</tr>
<tr class="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>
</tr>
<tr class="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">47,582<span></span>
</td>
</tr>
<tr class="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,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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,495<span></span>
</td>
</tr>
<tr class="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">(126)<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">50,077<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">(2,425)<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>
</tr>
<tr class="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>
</tr>
<tr class="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">967<span></span>
</td>
</tr>
<tr class="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">(67)<span></span>
</td>
</tr>
<tr class="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">957<span></span>
</td>
</tr>
<tr class="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">(104)<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">1,924<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">(171)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">285,087<span></span>
</td>
</tr>
<tr class="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">(9,591)<span></span>
</td>
</tr>
<tr class="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">187,153<span></span>
</td>
</tr>
<tr class="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,609)<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">472,240<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">(24,200)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">15,858<span></span>
</td>
</tr>
<tr class="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">(285)<span></span>
</td>
</tr>
<tr class="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">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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">15,858<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">(285)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">624<span></span>
</td>
</tr>
<tr class="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">(11)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">$ (11)<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922890-210455<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27337-111563<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121590138&amp;loc=SL82922954-210456<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27337-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922890-210455<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27337-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922890-210455<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121590138&amp;loc=SL82922954-210456<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922890-210455<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27337-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27290-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922888-210455<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121590138&amp;loc=SL82922954-210456<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27290-111563<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124269663&amp;loc=SL82922888-210455<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920976336">
<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)<br> $ in Thousands</strong></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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">$ 218,759<span></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">183,812<span></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">114,345<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">89,056<span></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">66,439<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">672,876<span></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">465<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>
</tr>
<tr class="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>
</tr>
<tr class="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">11,332<span></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">2,429<span></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">6,384<span></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">17,758<span></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">17,643<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">55,546<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</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>
</tr>
<tr class="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>
</tr>
<tr class="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">164,055<span></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">167,661<span></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">94,417<span></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">63,101<span></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">48,796<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">538,495<span></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">465<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>
</tr>
<tr class="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>
</tr>
<tr class="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">26,890<span></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">12,755<span></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">12,587<span></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">8,197<span></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>
</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">60,429<span></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>
</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>
</tr>
<tr class="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>
</tr>
<tr class="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">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_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">967<span></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">957<span></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>
</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>
</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">1,924<span></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>
</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_MunicipalBondsMember', window );">Municipal Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">624<span></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">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_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</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_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</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_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">624<span></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>
</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=cgnx_AgencyBondsMember', window );">Agency Bonds [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_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">15,858<span></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>
</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>
</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>
</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>
</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">15,858<span></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>
</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 320<br> -Section 50<br> -Paragraph 3A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126980459&amp;loc=SL120269850-112803<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27198-111563<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124258926&amp;loc=SL82898722-210454<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124260329&amp;loc=d3e26610-111562<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 320<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -URI https://asc.fasb.org/extlink&amp;oid=126970911&amp;loc=d3e27161-111563<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062924910464">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory 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_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 71,720<span></span>
</td>
<td class="nump">$ 50,452<span></span>
</td>
</tr>
<tr class="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">906<span></span>
</td>
<td class="nump">5,293<span></span>
</td>
</tr>
<tr class="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">49,854<span></span>
</td>
<td class="nump">57,357<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">$ 122,480<span></span>
</td>
<td class="nump">$ 113,102<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917413760">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 175,195<span></span>
</td>
<td class="nump">$ 174,565<span></span>
</td>
</tr>
<tr class="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">(95,481)<span></span>
</td>
<td class="num">(97,019)<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">79,714<span></span>
</td>
<td class="nump">77,546<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">3,951<span></span>
</td>
<td class="nump">3,951<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">24,533<span></span>
</td>
<td class="nump">24,533<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">45,003<span></span>
</td>
<td class="nump">47,886<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">14,491<span></span>
</td>
<td class="nump">10,436<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">53,663<span></span>
</td>
<td class="nump">50,748<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">27,176<span></span>
</td>
<td class="nump">30,562<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,378<span></span>
</td>
<td class="nump">$ 6,449<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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>80
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921140400">
<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>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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">$ 17,358<span></span>
</td>
<td class="nump">$ 20,647<span></span>
</td>
</tr>
<tr class="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">16,604<span></span>
</td>
<td class="nump">20,614<span></span>
</td>
</tr>
<tr class="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">754<span></span>
</td>
<td class="nump">33<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentDisposals', window );">Disposals in period</a></td>
<td class="nump">17,358<span></span>
</td>
<td class="nump">20,647<span></span>
</td>
</tr>
<tr class="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">16,604<span></span>
</td>
<td class="nump">20,614<span></span>
</td>
</tr>
<tr class="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">(754)<span></span>
</td>
<td class="num">$ (33)<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_LiabilityForCatastropheClaimsByCatastrophicEventAxis=us-gaap_DamageFromFireExplosionOrOtherHazardMember', window );">Damage from Fire, Explosion or Other Hazard</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_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>
</tr>
<tr class="re">
<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">735<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="num">$ (735)<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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>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_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_LiabilityForCatastropheClaimsByCatastrophicEventAxis=us-gaap_DamageFromFireExplosionOrOtherHazardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LiabilityForCatastropheClaimsByCatastrophicEventAxis=us-gaap_DamageFromFireExplosionOrOtherHazardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917240384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details)<br> ft&#178; in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jun. 07, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 28, 2020 </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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">$ 8,939<span></span>
</td>
<td class="nump">$ 8,180<span></span>
</td>
<td class="nump">$ 8,180<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">8,548<span></span>
</td>
<td class="nump">8,225<span></span>
</td>
<td class="nump">8,009<span></span>
</td>
<td class="text">&#160;<span></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="text">&#160;<span></span>
</td>
<td class="nump">144<span></span>
</td>
<td class="nump">154<span></span>
</td>
<td class="nump">123<span></span>
</td>
<td class="text">&#160;<span></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="text">&#160;<span></span>
</td>
<td class="nump">39,752<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">$ 25,581<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25,581<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">$ 23,157<span></span>
</td>
<td class="nump">$ 37,682<span></span>
</td>
<td class="nump">$ 23,157<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">3.40%<span></span>
</td>
<td class="nump">3.30%<span></span>
</td>
<td class="nump">3.40%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">5 years 1 month 6 days<span></span>
</td>
<td class="text">7 years 9 months 18 days<span></span>
</td>
<td class="text">5 years 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset', window );">Carrying value of lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_AssetImpairmentCharges', window );">Intangible asset impairment charges</a></td>
<td class="nump">$ 8,709<span></span>
</td>
<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,427<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLeaseIncome', window );">Operating lease income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 77<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList', window );">Operating Lease, Lease Income, Statement of Income or Comprehensive Income [Extensible Enumeration]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Operating Income (Loss)<span></span>
</td>
<td class="text">&#160;<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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract Termination [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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="nump">$ 1,717<span></span>
</td>
<td class="nump">$ 765<span></span>
</td>
<td class="nump">$ 1,717<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_SouthboroughMassachusettsMember', window );">Southborough, Massachusetts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">9,271<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">65<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Lessee, Operating Lease, Term of Contract</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">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract', window );">Lessee, Operating Lease, Option to Renew, Term of Contract</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">$ 9,271<span></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_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_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, Right-Of-Use Asset, Carrying Value Of Impaired Asset</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_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset</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_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126905981&amp;loc=d3e2420-110228<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LesseeOperatingLeaseTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseTermOfContract</td>
</tr>
<tr>
<td style="padding-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_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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918638-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OperatingLeaseIncomeComprehensiveIncomeExtensibleList">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 comprehensive income that includes operating lease 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=123420820&amp;loc=SL77919311-209978<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList</td>
</tr>
<tr>
<td style="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>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLeaseIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income from lease payments and variable lease payments paid and payable to lessor. Includes, but is not limited to, variable lease payments not included in measurement of lease 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124258985&amp;loc=SL77919372-209981<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=123420820&amp;loc=SL77919311-209978<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6A<br> -URI https://asc.fasb.org/extlink&amp;oid=126900988&amp;loc=SL77927221-108306<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLeaseIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_SouthboroughMassachusettsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SouthboroughMassachusettsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062925213568">
<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, 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_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 );">2023</a></td>
<td class="nump">$ 9,473<span></span>
</td>
</tr>
<tr class="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 );">2024</a></td>
<td class="nump">6,935<span></span>
</td>
</tr>
<tr class="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 );">2025</a></td>
<td class="nump">4,975<span></span>
</td>
</tr>
<tr class="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 );">2026</a></td>
<td class="nump">3,791<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2027</a></td>
<td class="nump">3,353<span></span>
</td>
</tr>
<tr class="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">15,809<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">$ 44,336<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>83
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921778880">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 241,713<span></span>
</td>
<td class="nump">$ 244,078<span></span>
</td>
</tr>
<tr class="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">(1,442)<span></span>
</td>
<td class="num">(2,365)<span></span>
</td>
</tr>
<tr class="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">242,630<span></span>
</td>
<td class="nump">$ 241,713<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="nump">$ 2,359<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 an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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) an asset representing future economic benefits from other assets acquired in a business combination that are 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917325648">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 34,195<span></span>
</td>
<td class="nump">$ 73,675<span></span>
</td>
</tr>
<tr class="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">(21,781)<span></span>
</td>
<td class="num">(61,787)<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">12,414<span></span>
</td>
<td class="nump">11,888<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_DistributionRightsMember', window );">Distribution Networks [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">38,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_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(38,060)<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">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_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="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">28,017<span></span>
</td>
<td class="nump">24,217<span></span>
</td>
</tr>
<tr class="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">(17,744)<span></span>
</td>
<td class="num">(15,234)<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">10,273<span></span>
</td>
<td class="nump">8,983<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="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">5,838<span></span>
</td>
<td class="nump">10,578<span></span>
</td>
</tr>
<tr class="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">(3,860)<span></span>
</td>
<td class="num">(7,891)<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">1,978<span></span>
</td>
<td class="nump">2,687<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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">340<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">(177)<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">$ 163<span></span>
</td>
<td class="text">&#160;<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 [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">110<span></span>
</td>
</tr>
<tr class="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">(110)<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">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_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="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="text">&#160;<span></span>
</td>
<td class="nump">710<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(492)<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="text">&#160;<span></span>
</td>
<td class="nump">$ 218<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_DistributionRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DistributionRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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>85
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062928386800">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 );">2023</a></td>
<td class="nump">$ 3,137<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">2024</a></td>
<td class="nump">2,623<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2025</a></td>
<td class="nump">2,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2026</a></td>
<td class="nump">1,995<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">2027</a></td>
<td class="nump">1,273<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">1,086<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">$ 12,414<span></span>
</td>
<td class="nump">$ 11,888<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>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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>86
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921977760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">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>Dec. 07, 2022</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>May 26, 2020</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">$ 3,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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19,571<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 19,571<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(21,781)<span></span>
</td>
<td class="num">(61,787)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration', window );">Impairment, Intangible Asset, Indefinite-Lived (Excluding Goodwill), Statement of Income or Comprehensive Income [Extensible Enumeration]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Intangible asset impairment charges<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Completed Technologies [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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(17,744)<span></span>
</td>
<td class="num">(15,234)<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_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Contracts And Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="num">$ (3,860)<span></span>
</td>
<td class="num">$ (7,891)<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_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_DistributionNetworksAndCustomerRelationshipsMember', window );">Distribution Networks and 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 43,280<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | In Process Research and Development [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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Completed Technologies [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>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,070<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Customer Contracts And Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,382<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=cgnx_EnShapeGmbHMember', window );">EnShape GmbH [Member] | Customer Contracts And Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></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="nump">447<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 219<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 228<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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife</td>
</tr>
<tr>
<td style="padding-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 intangible assets, excluding goodwill, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=128092470&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI https://asc.fasb.org/extlink&amp;oid=123455525&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=128092470&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>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_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_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 income or comprehensive income that includes impairment of indefinite-lived intangible asset excluding 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration</td>
</tr>
<tr>
<td style="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>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss resulting from write-down of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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=cgnx_DistributionNetworksAndCustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_DistributionNetworksAndCustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_SualabCo.Ltd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SualabCo.Ltd.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_EnShapeGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_EnShapeGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920997952">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued Expenses - Constituents of Accrued Expenses (Detail) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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_OtherDeferredCompensationArrangementsLiabilityCurrent', window );">Deferred payments related to Sualab Co., Ltd. acquisition</a></td>
<td class="nump">$ 19,282,000<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_AccruedBonusesCurrent', window );">Incentive compensation</a></td>
<td class="nump">18,554,000<span></span>
</td>
<td class="nump">37,917,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_AccruedSalariesCurrent', window );">Salaries and payroll taxes</a></td>
<td class="nump">8,121,000<span></span>
</td>
<td class="nump">8,519,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_RetirementAllowance', window );">Foreign retirement obligations</a></td>
<td class="nump">7,191,000<span></span>
</td>
<td class="nump">7,572,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_AccruedVacationCurrent', window );">Vacation</a></td>
<td class="nump">5,847,000<span></span>
</td>
<td class="nump">4,686,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_ProductWarrantyAccrualClassifiedCurrent', window );">Warranty obligations</a></td>
<td class="nump">4,375,000<span></span>
</td>
<td class="nump">5,427,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_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">29,865,000<span></span>
</td>
<td class="nump">28,311,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_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">93,235,000<span></span>
</td>
<td class="nump">$ 92,432,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_AssetAcquisitionContingentConsiderationLiabilityCurrent', window );">Asset acquisition, contingent consideration, liability, current</a></td>
<td class="nump">$ 24,040,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=6409733&amp;loc=d3e19396-108361<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_AssetAcquisitionContingentConsiderationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 from contingent consideration in asset acquisition, 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 50<br> -Section 15<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=6911878&amp;loc=d3e8732-128492<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_OtherDeferredCompensationArrangementsLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liabilities, classified as other, for deferred compensation arrangements payable within one year or the 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=6409733&amp;loc=d3e19512-108361<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 30<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=6409875&amp;loc=d3e20028-108363<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12524-110249<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 25<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126907644&amp;loc=d3e11281-110244<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>88
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927618768">
<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="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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">$ 5,427<span></span>
</td>
<td class="nump">$ 5,406<span></span>
</td>
</tr>
<tr class="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">1,876<span></span>
</td>
<td class="nump">3,256<span></span>
</td>
</tr>
<tr class="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">(2,928)<span></span>
</td>
<td class="num">(3,235)<span></span>
</td>
</tr>
<tr class="re">
<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">$ 4,375<span></span>
</td>
<td class="nump">$ 5,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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.15(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph ((c)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph ((c)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=126907703&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062918667568">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Additional Information (Detail) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 50,942,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_OtherInventoryPurchasedGoods', window );">Other Inventory, Purchased Goods, Gross</a></td>
<td class="nump">$ 5,269,000<span></span>
</td>
<td class="nump">$ 547,000<span></span>
</td>
<td class="nump">$ 1,311,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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>90
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927208016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Additional Details (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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>
</tr>
<tr class="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>
</tr>
<tr class="re">
<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>
</tr>
</table>
<div style="display: none;">
<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>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_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>91
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917781696">
<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</strong></div></th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>MXN ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>CNY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>CHF (SFr)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>MXN ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>CNY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>CHF (SFr)</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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#8364; 60,000<span></span>
</td>
<td class="nump">$ 64,174<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#8364; 65,000<span></span>
</td>
<td class="nump">$ 73,748<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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>
</tr>
<tr class="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>
</tr>
<tr class="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">5,281<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 700,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">5,213<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>
<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>
</tr>
<tr class="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>
</tr>
<tr class="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">9,480<span></span>
</td>
<td class="nump">$ 185,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">6,842<span></span>
</td>
<td class="nump">$ 140,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 );">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>
</tr>
<tr class="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>
</tr>
<tr class="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,161<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,445<span></span>
</td>
<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,552<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,370<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>
</tr>
<tr class="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>
</tr>
<tr class="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">4,238<span></span>
</td>
<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 1,590,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="nump">4,155<span></span>
</td>
<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 1,355,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_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>
</tr>
<tr class="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>
</tr>
<tr class="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,278<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,730<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,167<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,480<span></span>
</td>
<td class="text">&#160;<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>
</tr>
<tr class="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>
</tr>
<tr class="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">7,619<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 54,374<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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>
</tr>
<tr class="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>
</tr>
<tr class="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,218<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 1,120<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>
</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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5579245-113959<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1B<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5580258-113959<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5579245-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917363584">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 27<span></span>
</td>
<td class="nump">$ 39<span></span>
</td>
</tr>
<tr class="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">479<span></span>
</td>
<td class="nump">230<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">27<span></span>
</td>
<td class="nump">39<span></span>
</td>
</tr>
<tr class="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">$ 479<span></span>
</td>
<td class="nump">$ 230<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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13433-108611<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13433-108611<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>93
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922898768">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 27<span></span>
</td>
<td class="nump">$ 39<span></span>
</td>
</tr>
<tr class="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">27<span></span>
</td>
<td class="nump">39<span></span>
</td>
</tr>
<tr class="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">479<span></span>
</td>
<td class="nump">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_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">$ 479<span></span>
</td>
<td class="nump">$ 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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126966630&amp;loc=d3e41228-113958<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13433-108611<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=121570589&amp;loc=SL51823488-111719<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5624163-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 860<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=121570589&amp;loc=SL51823488-111719<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5624163-113959<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226000-175313<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13433-108611<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226052-175313<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126966630&amp;loc=d3e41228-113958<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>94
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920866576">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 9,823<span></span>
</td>
<td class="nump">$ 4,262<span></span>
</td>
<td class="num">$ (12,308)<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=125515794&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>95
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062927288224">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Narratives (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 14,578,000<span></span>
</td>
<td class="nump">$ 10,854,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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 40<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126905575&amp;loc=SL49131252-203054<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>96
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923055600">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 1,006,090<span></span>
</td>
<td class="nump">$ 1,037,098<span></span>
</td>
<td class="nump">$ 811,020<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">848,153<span></span>
</td>
<td class="nump">889,253<span></span>
</td>
<td class="nump">674,830<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">157,937<span></span>
</td>
<td class="nump">147,845<span></span>
</td>
<td class="nump">136,190<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">390,573<span></span>
</td>
<td class="nump">435,220<span></span>
</td>
<td class="nump">310,027<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">234,643<span></span>
</td>
<td class="nump">247,744<span></span>
</td>
<td class="nump">208,787<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">227,447<span></span>
</td>
<td class="nump">200,135<span></span>
</td>
<td class="nump">168,287<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">$ 153,427<span></span>
</td>
<td class="nump">$ 153,999<span></span>
</td>
<td class="nump">$ 123,919<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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>97
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062928371552">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 776<span></span>
</td>
<td class="nump">$ 831<span></span>
</td>
</tr>
<tr class="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">191<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_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs, net of recoveries</a></td>
<td class="num">(237)<span></span>
</td>
<td class="num">(55)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment', window );">Foreign exchange rate changes</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_AllowanceForDoubtfulAccountsReceivable', window );">Ending balance</a></td>
<td class="nump">$ 730<span></span>
</td>
<td class="nump">$ 776<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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>98
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920861632">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 35,743<span></span>
</td>
<td class="nump">$ 21,274<span></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">39,076<span></span>
</td>
<td class="nump">31,907<span></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">(31,520)<span></span>
</td>
<td class="num">(17,403)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ContractLiabilityForeignExchangeRateChanges', window );">Foreign exchange rate changes</a></td>
<td class="num">(2,512)<span></span>
</td>
<td class="num">(35)<span></span>
</td>
</tr>
<tr class="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">$ 40,787<span></span>
</td>
<td class="nump">$ 35,743<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917995104">
<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"></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="7">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 28, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>$ / shares</div>
</th>
<th class="th">
<div>Sep. 27, 2020 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Oct. 03, 2021 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2020 </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>Oct. 29, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 25, 2018 </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 28, 2016 </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 27, 2016 </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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="text">&#160;<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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="text">&#160;<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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="text">&#160;<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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="text">&#160;<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="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="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="nump">10,000,000<span></span>
</td>
<td class="nump">200,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="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<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<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="nump">$ 161,652,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,036,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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="nump">$ 0.070<span></span>
</td>
<td class="nump">$ 0.065<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.055<span></span>
</td>
<td class="nump">$ 0.265<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.245<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.060<span></span>
</td>
<td class="nump">$ 2.225<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareDeclared', window );">Cash dividend declared per common share | $ / 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">$ 2.00<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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfDividends', window );">Payments of dividends</a></td>
<td class="nump">$ 351,428,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="nump">$ 45,921,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 43,263,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 390,508,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>
<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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member', window );">Repurchase Program October 2018 [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="fn" style="border-bottom: 0px;"></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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_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="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="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">$ 200,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>
</tr>
<tr class="ro">
<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="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="nump">957,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,215,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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</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="nump">$ 78,652,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,036,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>
<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_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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</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="nump">1,060,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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</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="nump">$ 83,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="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_StockRepurchasedDuringPeriodSharesNotYetSettled', window );">Repurchase of common stock, not yet settled (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">5,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>
<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_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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_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="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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Stock Repurchase Program, Remaining Authorized Repurchase Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 412,686,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">$ 412,686,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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>
<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="19"></td></tr>
<tr><td colspan="19"><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">172,440&#160;</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_StockRepurchasedDuringPeriodSharesNotYetSettled">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Repurchased During Period, Shares Not Yet Settled</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_StockRepurchasedDuringPeriodSharesNotYetSettled</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: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_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_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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_CommonStockDividendsPerShareDeclared">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 declared 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockDividendsPerShareDeclared</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_PaymentsOfDividends">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfDividends</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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 of stock repurchase plan authorized.</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_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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 of a stock repurchase plan authorized.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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;">us-gaap_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_us-gaap_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;">us-gaap_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>100
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923123088">
<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="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 28, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>group </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($) </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_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>
</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="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement', window );">Estimated forfeiture rate for unvested options for senior management</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.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_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement', window );">Estimated forfeiture rate for unvested options for all non-senior management</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.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_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates', window );">Increase in compensation expense due to revised estimated forfeiture rates</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,536,000<span></span>
</td>
<td class="nump">$ 255,000<span></span>
</td>
<td class="nump">$ 1,787,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant-date fair values of stock options granted | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21.39<span></span>
</td>
<td class="nump">$ 33.79<span></span>
</td>
<td class="nump">$ 19.62<span></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="text">&#160;<span></span>
</td>
<td class="nump">$ 8,424,000<span></span>
</td>
<td class="nump">$ 80,369,000<span></span>
</td>
<td class="nump">$ 166,796,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue', window );">Total fair values of stock options vested</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">41,497,000<span></span>
</td>
<td class="nump">45,328,000<span></span>
</td>
<td class="nump">45,998,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Total unrecognized compensation expense related to non-vested stock options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 56,694,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year 6 months 3 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_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 54,505,000<span></span>
</td>
<td class="nump">43,774,000<span></span>
</td>
<td class="nump">42,661,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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,540,000<span></span>
</td>
<td class="nump">$ 6,764,000<span></span>
</td>
<td class="nump">$ 6,569,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_ShareBasedCompensation', window );">Stock-based compensation expense and the related income tax benefit recognized, credits</a></td>
<td class="nump">$ 1,401,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_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>
</tr>
<tr class="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>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">13,746,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_ExpirationPeriodOfStockOptionPlan', window );">Expiration period of stock option plan</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_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>
</tr>
<tr class="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>
</tr>
<tr class="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="text">&#160;<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="text">&#160;<span></span>
</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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 87.03<span></span>
</td>
<td class="nump">$ 52.09<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">192,000<span></span>
</td>
<td class="nump">16,000<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_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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">4 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_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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#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="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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="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>
</tr>
<tr class="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">&#160;<span></span>
</td>
<td class="text">4 years<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_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-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_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-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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>101
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062918544976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Shares</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Beginning balance outstanding | shares</a></td>
<td class="nump">7,610<span></span>
</td>
</tr>
<tr class="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 | shares</a></td>
<td class="nump">1,418<span></span>
</td>
</tr>
<tr class="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 | shares</a></td>
<td class="num">(365)<span></span>
</td>
</tr>
<tr class="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 | shares</a></td>
<td class="num">(196)<span></span>
</td>
</tr>
<tr class="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 | shares</a></td>
<td class="nump">8,467<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="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 | $ / shares</a></td>
<td class="nump">$ 49.38<span></span>
</td>
</tr>
<tr class="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 | $ / shares</a></td>
<td class="nump">59.63<span></span>
</td>
</tr>
<tr class="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 | $ / shares</a></td>
<td class="nump">33.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited or expired, weighted-average exercise price | $ / shares</a></td>
<td class="nump">58.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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Ending balance outstanding, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 51.56<span></span>
</td>
</tr>
<tr class="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 | shares</a></td>
<td class="nump">4,596<span></span>
</td>
</tr>
<tr class="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 | shares</a></td>
<td class="nump">8,038<span></span>
</td>
</tr>
<tr class="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 | $ / shares</a></td>
<td class="nump">$ 44.71<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested or expected to vest, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 51.10<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, weighted-average remaining contractual term (in years)</a></td>
<td class="text">6 years 1 month 17 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual term (in years)</a></td>
<td class="text">4 years 11 months 8 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">6 years 3 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value | $</a></td>
<td class="nump">$ 31,327<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue', window );">Exercisable, aggregate intrinsic value | $</a></td>
<td class="nump">31,025<span></span>
</td>
</tr>
<tr class="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">$ 31,224<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>102
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922898352">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">2.20%<span></span>
</td>
<td class="nump">1.30%<span></span>
</td>
<td class="nump">1.40%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.44%<span></span>
</td>
<td class="nump">0.27%<span></span>
</td>
<td class="nump">0.41%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">37.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">5 years 6 months<span></span>
</td>
<td class="text">6 years<span></span>
</td>
<td class="text">6 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>103
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922008352">
<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, 2022 </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">823<span></span>
</td>
</tr>
<tr class="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">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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested | shares</a></td>
<td class="num">(192)<span></span>
</td>
</tr>
<tr class="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">(77)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending balance outstanding | shares</a></td>
<td class="nump">1,269<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 65.26<span></span>
</td>
</tr>
<tr class="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">58.06<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested, weighted-average exercise price | $ / shares</a></td>
<td class="nump">61.96<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited or expired, weighted-average exercise price | $ / shares</a></td>
<td class="nump">64.65<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested ending balance, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 61.74<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>104
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920982096">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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 3 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_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">$ 54,505,000<span></span>
</td>
<td class="nump">$ 43,774,000<span></span>
</td>
<td class="nump">$ 42,661,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">9,540,000<span></span>
</td>
<td class="nump">6,764,000<span></span>
</td>
<td class="nump">6,569,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_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="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">2,016,000<span></span>
</td>
<td class="nump">1,345,000<span></span>
</td>
<td class="nump">1,365,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="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">17,693,000<span></span>
</td>
<td class="nump">13,535,000<span></span>
</td>
<td class="nump">13,387,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="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">$ 34,796,000<span></span>
</td>
<td class="nump">$ 28,894,000<span></span>
</td>
<td class="nump">$ 27,909,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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>105
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922081984">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested beginning balance, 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted</a></td>
<td class="nump">33<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price</a></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="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">33<span></span>
</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested ending balance, weighted-average exercise price</a></td>
<td class="nump">$ 62.49<span></span>
</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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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>106
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922010208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Savings Plan - Additional Information (Detail) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="reu">
<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,284,000<span></span>
</td>
<td class="nump">$ 2,898,000<span></span>
</td>
<td class="nump">$ 2,636,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_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-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_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-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_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-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_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-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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>107
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917271232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</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">$ 48,546,000<span></span>
</td>
<td class="nump">$ 121,729,000<span></span>
</td>
<td class="nump">$ 39,425,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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income from continuing operations before taxes</a></td>
<td class="nump">202,149,000<span></span>
</td>
<td class="nump">197,171,000<span></span>
</td>
<td class="nump">$ 147,486,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecognizedTaxBenefitsGross', window );">Unrecognized Tax Benefits, Gross</a></td>
<td class="nump">15,866,000<span></span>
</td>
<td class="nump">15,808,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_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="nump">15,866,000<span></span>
</td>
<td class="nump">14,780,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_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets', window );">Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,028,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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties, gross</a></td>
<td class="nump">2,219,000<span></span>
</td>
<td class="nump">$ 1,996,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_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Minimum decrease in income tax expense due to release in reserves</a></td>
<td class="nump">1,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>
</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">$ 1,500,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">7.00%<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="nump">6.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">$ 229,000<span></span>
</td>
<td class="nump">$ 281,000<span></span>
</td>
<td class="nump">$ 340,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_IncomeTaxesPaidNet', window );">Income tax paid net</a></td>
<td class="nump">57,016,000<span></span>
</td>
<td class="nump">49,435,000<span></span>
</td>
<td class="nump">$ 33,695,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_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">53,000<span></span>
</td>
<td class="nump">751,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_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">7,661,000<span></span>
</td>
<td class="nump">8,188,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_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,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">GILTI tax basis differences</a></td>
<td class="nump">298,922,000<span></span>
</td>
<td class="nump">$ 327,725,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 350,000,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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember', window );">Research Tax Credit Carryforward [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_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">6,869,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_us-gaap_TaxCreditCarryforwardAxis=cgnx_StateResearchAndExperimentationMember', window );">State Research And Experimentation [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_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">Deferred tax assets, tax credit carryforwards, research</a></td>
<td class="nump">7,658,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_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [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">180,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" 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,234,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_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [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 Authority [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 Authority [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.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_DomesticCountryMember', window );">Domestic Tax Authority [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">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="ro">
<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">$ 6,050,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 benefit shown as a reduction to noncurrent deferred tax assets as a result of net operating loss carryforward, a similar tax loss, or a tax credit carryforward.</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_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_DeferredTaxAssetsTaxCreditCarryforwardsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 research tax credit carryforwards.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAxis=cgnx_StateResearchAndExperimentationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_TaxCreditCarryforwardAxis=cgnx_StateResearchAndExperimentationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_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_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>108
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917783424">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 48,355<span></span>
</td>
<td class="nump">$ 27,870<span></span>
</td>
<td class="nump">$ 160<span></span>
</td>
</tr>
<tr class="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">5,689<span></span>
</td>
<td class="nump">5,372<span></span>
</td>
<td class="nump">921<span></span>
</td>
</tr>
<tr class="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">10,243<span></span>
</td>
<td class="nump">8,406<span></span>
</td>
<td class="nump">13,197<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">64,287<span></span>
</td>
<td class="nump">41,648<span></span>
</td>
<td class="nump">14,278<span></span>
</td>
</tr>
<tr class="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">(40,772)<span></span>
</td>
<td class="num">(19,266)<span></span>
</td>
<td class="num">(18,266)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="num">(8,354)<span></span>
</td>
<td class="num">(769)<span></span>
</td>
<td class="num">(556)<span></span>
</td>
</tr>
<tr class="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">20,009<span></span>
</td>
<td class="nump">17,406<span></span>
</td>
<td class="nump">15,269<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">(29,117)<span></span>
</td>
<td class="num">(2,629)<span></span>
</td>
<td class="num">(3,553)<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">$ 35,170<span></span>
</td>
<td class="nump">$ 39,019<span></span>
</td>
<td class="nump">$ 10,725<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>109
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062921964224">
<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)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">1.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">(7.00%)<span></span>
</td>
<td class="num">(5.00%)<span></span>
</td>
<td class="num">(6.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 credit</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="num">(2.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_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent', window );">Limitation on executive compensation</a></td>
<td class="nump">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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax benefit related to employee stock options</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(3.00%)<span></span>
</td>
<td class="num">(7.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="num">(2.00%)<span></span>
</td>
<td class="num">(1.00%)<span></span>
</td>
<td class="num">(5.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 benefit related to a rate revaluation on state tax assets</a></td>
<td class="num">(2.00%)<span></span>
</td>
<td class="nump">0.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_EffectiveIncomeTaxRateReconciliationGiltiPercent', window );">Discrete tax benefit related to GILTI adjustments</a></td>
<td class="num">(3.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign', window );">Discrete tax expense related to international tax reserves</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.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 );">Discrete tax benefit for audit settlements</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.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="num">(1.00%)<span></span>
</td>
<td class="nump">0.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_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">1.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">14.00%<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">6.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-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_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-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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 35<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126970579&amp;loc=d3e23163-113944<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 foreign 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign</td>
</tr>
<tr>
<td style="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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>110
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062916893536">
<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="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [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_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 13,812<span></span>
</td>
<td class="nump">$ 13,952<span></span>
</td>
</tr>
<tr class="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 );">Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods</a></td>
<td class="num">(119)<span></span>
</td>
<td class="num">(280)<span></span>
</td>
</tr>
<tr class="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 );">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods</a></td>
<td class="nump">2,850<span></span>
</td>
<td class="nump">100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period</a></td>
<td class="nump">505<span></span>
</td>
<td class="nump">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_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities</a></td>
<td class="num">(2,329)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations</a></td>
<td class="num">(1,072)<span></span>
</td>
<td class="num">(485)<span></span>
</td>
</tr>
<tr class="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">$ 13,647<span></span>
</td>
<td class="nump">$ 13,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_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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=SL37586934-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>111
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923179328">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Constituents of Deferred Tax Assets (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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">$ 386,221,000<span></span>
</td>
<td class="nump">$ 404,526,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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation expense</a></td>
<td class="nump">21,962,000<span></span>
</td>
<td class="nump">15,279,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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Federal and state tax credit carryforwards</a></td>
<td class="nump">8,284,000<span></span>
</td>
<td class="nump">11,051,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_DeferredTaxAssetsInventory', window );">Inventory and revenue related</a></td>
<td class="nump">8,117,000<span></span>
</td>
<td class="nump">7,426,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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther', window );">Bonuses, commissions, and other compensation</a></td>
<td class="nump">5,116,000<span></span>
</td>
<td class="nump">7,263,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_NoncurrentDeferredTaxAssetsDeprecation', window );">Depreciation</a></td>
<td class="nump">2,119,000<span></span>
</td>
<td class="nump">5,395,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_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">53,000<span></span>
</td>
<td class="nump">751,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_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses', window );">Capitalization of R&amp;D expenses</a></td>
<td class="nump">16,889,000<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_DeferredTaxAssetsOtherNoncurrent', window );">Other</a></td>
<td class="nump">15,102,000<span></span>
</td>
<td class="nump">9,023,000<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">463,863,000<span></span>
</td>
<td class="nump">460,714,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_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(7,661,000)<span></span>
</td>
<td class="num">(8,188,000)<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">456,202,000<span></span>
</td>
<td class="nump">452,526,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_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 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 in connection with change in tax structure</a></td>
<td class="num">(298,922,000)<span></span>
</td>
<td class="num">(327,725,000)<span></span>
</td>
<td class="num">$ (350,000,000)<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">$ 157,280,000<span></span>
</td>
<td class="nump">$ 124,801,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>112
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062922095680">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">173,407<span></span>
</td>
<td class="nump">176,463<span></span>
</td>
<td class="nump">173,489<span></span>
</td>
</tr>
<tr class="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,462<span></span>
</td>
<td class="nump">3,453<span></span>
</td>
<td class="nump">3,103<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">174,869<span></span>
</td>
<td class="nump">179,916<span></span>
</td>
<td class="nump">176,592<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>113
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920991072">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">4,715,104<span></span>
</td>
<td class="nump">497,504<span></span>
</td>
<td class="nump">4,371,194<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">26,079<span></span>
</td>
<td class="nump">605<span></span>
</td>
<td class="nump">3,826<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>114
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923207840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information - Additional Information (Detail) - Segment<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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</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="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="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="nump">11.00%<span></span>
</td>
<td class="nump">17.00%<span></span>
</td>
<td class="nump">14.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="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">11.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13.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="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="nump">15.00%<span></span>
</td>
<td class="text">&#160;<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 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="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="text">&#160;<span></span>
</td>
<td class="nump">11.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8672-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>115
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062916953904">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 1,006,090<span></span>
</td>
<td class="nump">$ 1,037,098<span></span>
</td>
<td class="nump">$ 811,020<span></span>
</td>
</tr>
<tr class="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">86,357<span></span>
</td>
<td class="nump">84,788<span></span>
</td>
<td class="nump">86,967<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">343,835<span></span>
</td>
<td class="nump">393,690<span></span>
</td>
<td class="nump">280,205<span></span>
</td>
</tr>
<tr class="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">66,928<span></span>
</td>
<td class="nump">63,141<span></span>
</td>
<td class="nump">60,911<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">234,643<span></span>
</td>
<td class="nump">247,744<span></span>
</td>
<td class="nump">208,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_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">14,725<span></span>
</td>
<td class="nump">16,982<span></span>
</td>
<td class="nump">20,014<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">227,447<span></span>
</td>
<td class="nump">200,135<span></span>
</td>
<td class="nump">168,287<span></span>
</td>
</tr>
<tr class="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">1,334<span></span>
</td>
<td class="nump">960<span></span>
</td>
<td class="nump">1,278<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">200,165<span></span>
</td>
<td class="nump">195,529<span></span>
</td>
<td class="nump">153,741<span></span>
</td>
</tr>
<tr class="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">$ 3,370<span></span>
</td>
<td class="nump">$ 3,705<span></span>
</td>
<td class="nump">$ 4,764<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>116
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917278288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions - Sualab Co., Ltd. Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Oct. 16, 2019</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Jun. 28, 2020</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19,571<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 19,571<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_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [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>
</tr>
<tr class="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>
</tr>
<tr class="re">
<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">$ 193,638<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">170,602<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForProceedsFromPreviousAcquisition', window );">Credit to goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,004<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationLiability', window );">Contingent consideration liabilities</a></td>
<td class="nump">$ 24,040<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | In Process Research and Development [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>
</tr>
<tr class="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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Completed Technologies [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>
</tr>
<tr class="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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,070<span></span>
</td>
<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_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member', window );">Sualab Co., Ltd. [Member] | Customer Contracts And Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill', window );">Intangible asset impairment charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,382<span></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_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>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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126966197&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126975305&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126966197&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_BusinessCombinationContingentConsiderationLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 arising from contingent consideration in a 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/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126975305&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 35<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126966325&amp;loc=d3e6819-128478<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 25<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6408-128476<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to 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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 impairment loss resulting from write-down of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16373-109275<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsForProceedsFromPreviousAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash inflow or outflow associated with the aggregate amount of adjustment to the purchase price of a previous 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_PaymentsForProceedsFromPreviousAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126975305&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_BusinessAcquisitionAxis=cgnx_SualabCo.Ltd.Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SualabCo.Ltd.Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IndefiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_InProcessResearchAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>117
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062920931952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss from Fire (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 07, 2022</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Oct. 02, 2022</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesDisclosureAbstract', window );"><strong>Other Liabilities 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>
<td class="text">&#160;<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_GrossLossFromCatastrophes', window );">Gross Loss from Catastrophes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 48,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_InventoryWriteDown', window );">Inventory Write-down</a></td>
<td class="nump">$ 37,663<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetImpairmentCharges', window );">Intangible asset impairment charges</a></td>
<td class="nump">$ 8,709<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,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_CostOfGoodsAndServicesSoldOverhead', window );">Cost, Overhead</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,967<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="nump">$ 27,560<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,779<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_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_us-gaap_AssetImpairmentCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126905981&amp;loc=d3e2420-110228<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetImpairmentCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CostOfGoodsAndServicesSoldOverhead">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indirect cost incurred related to good produced and service rendered.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSoldOverhead</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_InventoryWriteDown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.</p></div>
<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4542-108314<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWriteDown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_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>118
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062928296960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Additional Information (Details)<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, 2022 </div>
<div>USD ($) </div>
<div>Employees</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($) </div>
<div>Employees</div>
</th>
<th class="th"><div>May 26, 2020</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_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated', window );">Number of positions eliminated | Employees</a></td>
<td class="nump">18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">181<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent', window );">Global workforce reduction</a></td>
<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.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_RestructuringCharges', window );">Restructuring charges | $</a></td>
<td class="nump">$ 1,657<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 15,924<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_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_RestructuringAndRelatedCostNumberOfPositionsEliminated">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 positions eliminated during the period as a result of restructuring activities.</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_RestructuringAndRelatedCostNumberOfPositionsEliminated</td>
</tr>
<tr>
<td style="padding-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_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 total number of positions eliminated as of the balance sheet date since inception of the restructuring plan(s).</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_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent</td>
</tr>
<tr>
<td style="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_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://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109237686&amp;loc=d3e17752-110868<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>119
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062923206560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Schedule of Restructuring and Related Costs (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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">$ 1,657<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 15,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits [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_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">1,584<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,159<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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract Termination [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_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">$ 73<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,207<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember', window );">Other Restructuring [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_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 558<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109237686&amp;loc=d3e17752-110868<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestructuringCostAndReserveLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_RestructuringCostAndReserveLineItems</td>
</tr>
<tr>
<td style="padding-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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>120
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062917070784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">$ 1,657<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 15,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits [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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">1,584<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,159<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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract Termination [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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="nump">73<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,207<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember', window );">Other Restructuring [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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">558<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | May 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</a></td>
<td class="nump">998<span></span>
</td>
<td class="nump">2,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="num">(747)<span></span>
</td>
<td class="num">(1,384)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="num">(6)<span></span>
</td>
<td class="num">(7)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">245<span></span>
</td>
<td class="nump">998<span></span>
</td>
<td class="nump">2,389<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | December 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="num">(1,657)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="num">(646)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">28<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">1,039<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | One-time Termination Benefits [Member] | May 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</a></td>
<td class="nump">482<span></span>
</td>
<td class="nump">1,624<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="num">(482)<span></span>
</td>
<td class="num">(1,142)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">482<span></span>
</td>
<td class="nump">1,624<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | One-time Termination Benefits [Member] | December 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="num">(1,584)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="num">(646)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">26<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">964<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | Contract Termination [Member] | May 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</a></td>
<td class="nump">516<span></span>
</td>
<td class="nump">750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="num">(265)<span></span>
</td>
<td class="num">(227)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="num">(6)<span></span>
</td>
<td class="num">(7)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">245<span></span>
</td>
<td class="nump">516<span></span>
</td>
<td class="nump">750<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | Contract Termination [Member] | December 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</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_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="num">(73)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</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_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">75<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | Other Restructuring [Member] | May 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [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_RestructuringReserve', window );">Balance as of December 31, 2020</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">15<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRestructuring', window );">Cash payments</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(15)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserve', window );">Balance as of December 31, 2021</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 15<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRestructuring">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3367-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRestructuring</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109237686&amp;loc=d3e17752-110868<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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_RestructuringReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB TOPIC 5.P.4(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringReserveRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_RestructuringReserveRollForward</td>
</tr>
<tr>
<td style="padding-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_RestructuringReserveTranslationAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 restructuring reserve.</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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveTranslationAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringCostAndReserveAxis=us-gaap_OtherRestructuringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringPlanAxis=cgnx_May2020Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=cgnx_May2020Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringPlanAxis=cgnx_December2022Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_RestructuringPlanAxis=cgnx_December2022Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>121
<FILENAME>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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140063008610736">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events - (Details)<br></strong></div></th>
<th class="th">
<div>Feb. 16, 2023 </div>
<div>$ / shares</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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event [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_SubsequentEventLineItems', window );"><strong>Subsequent Event [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_DividendsPayableAmountPerShare', window );">Dividends Payable, Amount Per Share</a></td>
<td class="nump">$ 0.070<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>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_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_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>122
<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.22.4</span><table class="report" border="0" cellspacing="2" id="idm140062916996848">
<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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">$ 776<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">730<span></span>
</td>
<td class="nump">$ 776<span></span>
</td>
<td class="text">&#160;<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">776<span></span>
</td>
<td class="nump">831<span></span>
</td>
<td class="nump">$ 530<span></span>
</td>
</tr>
<tr class="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">191<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">600<span></span>
</td>
</tr>
<tr class="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">(237)<span></span>
</td>
<td class="num">(55)<span></span>
</td>
<td class="num">(300)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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">1<span></span>
</td>
</tr>
<tr class="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">730<span></span>
</td>
<td class="nump">776<span></span>
</td>
<td class="nump">831<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">1,518<span></span>
</td>
<td class="nump">1,291<span></span>
</td>
<td class="nump">1,291<span></span>
</td>
</tr>
<tr class="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">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_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">227<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">1,518<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
<td class="nump">1,291<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">8,188<span></span>
</td>
<td class="nump">8,568<span></span>
</td>
<td class="nump">7,312<span></span>
</td>
</tr>
<tr class="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">2,234<span></span>
</td>
<td class="nump">1,420<span></span>
</td>
<td class="nump">1,256<span></span>
</td>
</tr>
<tr class="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">3,889<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="num">(6,650)<span></span>
</td>
<td class="num">(1,800)<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">$ 7,661<span></span>
</td>
<td class="nump">$ 8,188<span></span>
</td>
<td class="nump">$ 8,568<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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column D))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>XML
<SEQUENCE>123
<FILENAME>cgnx-20221231_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/20221231"
  xmlns:country="http://xbrl.sec.gov/country/2022"
  xmlns:currency="http://xbrl.sec.gov/currency/2022"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="cgnx-20221231.xsd" xlink:type="simple"/>
    <context id="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231">
        <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="iad994e02f63b40f6aeb532436b44712f_I20220703">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2022-07-03</instant>
        </period>
    </context>
    <context id="i6d4b21bf8b104201a47980e6f38dcf81_I20230129">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2023-01-29</instant>
        </period>
    </context>
    <context id="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231">
        <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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i0a741b855258479e8feae873870a21fe_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i009bdd105744470f92f9842dbdccb264_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i8b9f9b0cca6842aea084f5a2e15e878e_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i4c91f0f7ed80453ab08299b62282377f_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i8902887729504b498026f2d195bc6171_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="ideca493651a94cfd9ac93831dacc0feb_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6a9e2d8b39044a5da470cd71a20e96d9_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i37aa967d9b614574b60bf8744e6aa32d_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i2da618064e304974bd1bb8c916268bb4_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ia9112897e9444fd39d5b0856d18ea54f_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="iad6f5aa41caf46e288e81930ea0abb6b_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibae6b9b3c6ef413db976bc670eab9f6f_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i286bf008d86648e2af5b7cab93deaa88_I20211231">
        <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="i07f860f3aace482bae8724cb64ea7ba0_I20211231">
        <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="i425536f7ac9649f4b809e9472268e109_I20211231">
        <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="ifbb03b23bd884f0b97dde49ac3a7aba3_I20211231">
        <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="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231">
        <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="ie1e2221b2ffb438484820462f94b5dab_D20220101-20221231">
        <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="i295a746960af462daa557f4bd0a773d4_D20220101-20221231">
        <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="i2fb26adbfc8148299f6f7d6ee49b7fe2_I20221231">
        <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="i1178be5f70604688adcb636c8cbedf0c_I20221231">
        <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="i822bc252196244cca8220d4e49c25314_I20221231">
        <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="i2897666478444bcd81e42d318b14859a_I20221231">
        <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="ifa7f1aaa09574c4d9c4e019d191a823f_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iee589a12fbf244359633a5838d775a60_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i2cc370dc4f124b889113b6ce72669f0f_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ifb77d360cfbf4d1cbc02bb15f3155617_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="id713b63307164ed9a4c966f8e78671b2_D20220101-20221231">
        <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:DistributionRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i26a15cd120ad42108ce81ed3c8d47990_D20220101-20221231">
        <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:DistributionRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if27faab37b6a4f73863dff11fe969892_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i015d343516f34dd589537e0a5a7019d2_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i38d8a560a08c414b9ba3a790eac39db8_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i01ed603468da4f2c954af228989e2960_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i69bf83df0fde47b09eec084ef339f45a_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i565941fba8af4a21ac95304dd4e544b6_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="id0ea9f117fff4c63a23c02536f451fdd_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i8adc22054b3246d7b38929fa21b8160a_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib36ca5b3740f4f81844d10b264bc38af_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i26d0aec8272843a1999a113af386b3aa_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ia490e41a796b4535a8b324dc09089a07_D20220101-20221231">
        <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>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i4e8edbf45a9b475787b03e4b32fb6100_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i869877af7504471eb26d50c3caf7a346_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i64aa48a0b0ae445298efb767e3fda50c_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="if60370d1989c45a9a5f65c6069b83bf0_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i3528e37801244544af9d193380101650_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:GViVenturesInc.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i42d6f375c3f7421b82f634793c07bb5a_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i60011d84efde475c8588eb23faee3402_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i9634a0ff62a64c7c97fb012d5f04f764_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i76b31b3c521141c99c9efed5974a22bb_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ie688266910e6494fa1c1ad7173ab67cb_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i74c78e40a8d843199a11606ff8e39c0f_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ib992952d9d974d5ea61d843c4d3dfe6b_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i913eccf532734d7885578917cd746347_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i749ddfecc38f475192a0e44188c51783_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie84fe8bb8f1b415198a5814473e65315_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="if544a4fb4bc449acb2b6985e0160dd9b_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i8d0dc458e0284c9884a277b3b48a582d_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ic1ab971bdb29482b926eebe8fb19cbad_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i605d537deee54d9cbba484cacefee561_I20221231">
        <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">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ia45e4f4961e445ffb0f55366e7d99672_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ib040dc3743ed46ea90055e84346f0443_I20221231">
        <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:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i96505b0dd0934b6eb089bee13b990fbd_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i2421b53df67d48c08bb9749e9494b799_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i6e272a23bb514c139f6b134454ffaeee_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ice8f86701a48433090de5a2b0912eebc_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i84b7d2603a2e4a02912247cf825c6379_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i5f0394f5d2ab41368c68fe84b64e89a8_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i847049a23e58411caaf58e118c4ad138_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i0495920d2da04898b12b2c82d77310aa_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i39f965f20d5f4868bf1dac738b98ae6d_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i46dbc724c2374c85aee350ae4aabbf7a_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="ic0b2e605af7547a9a85dde4ac9575e36_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i63bdb8bcaf6c45c1a6c88354e1c3ca86_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="ib83d19a4b43e47ef8cd7ecb03f760ec8_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ie7a93f183b304d60ab4f100858cac07a_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i4e7d87a496d44de2879567339065aa1c_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i42db3fa11317411fa84706594979672a_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i0d12b535f83e4ceb92e3ecc1ce3fbe76_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LiabilityForCatastropheClaimsByCatastrophicEventAxis">us-gaap:DamageFromFireExplosionOrOtherHazardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib3c018963bbf478b803bd0dd571dd451_D20211201-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ifd68f7dfd0b24e8a821f44e87cfc53eb_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8428a5c435e443179e4f2794758325f8_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i5dd4f9f80b354a32b572aaa1f2285f17_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic3b49e8ab0bb42d8aadf3956795e5896_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2d09a9ae0d9f4bc0b5bc26258923e52e_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i6f141c1c8d6049f2b30349071c15c24e_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i8bab6017cb6946c499661bc2de073401_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i3e19d5ac14304bb6ba3db1840e190253_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="icf4836dc41804690a3bfeae1104c6bf1_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i2aad6cd17e034caca4cc804fad03323b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ic4f35afad63948a098933637d250b644_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="ic495a3bd530f4ebca6eb231ec7e6472d_I20221207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2022-12-07</instant>
        </period>
    </context>
    <context id="i33354f9f10e947f0bbdfd51008fc6673_D20221207-20221207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-12-07</startDate>
            <endDate>2022-12-07</endDate>
        </period>
    </context>
    <context id="i6b6333f398cb446f874831b0a7ce430b_I20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:DistributionNetworksAndCustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="ie67d26e226f842f78def61df0513f4d1_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="idada75d878da464ea026b4a203cbcb10_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IndefiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:InProcessResearchAndDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="if6cae797bb3e4fd2861d574e8b857954_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="if1ff5906f4734040992a6b748f42d812_I20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="i69142dd171a34505a0db9a07131e8fd5_I20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-06-28</instant>
        </period>
    </context>
    <context id="i81afe5dc608943d5bc97a00174870022_D20200330-20200628">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:EnShapeGmbHMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-03-30</startDate>
            <endDate>2020-06-28</endDate>
        </period>
    </context>
    <context id="i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231">
        <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="i7ecee748a7894aa6a34f131488958cd1_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="iab989b088adc40f397c936be994f0791_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="ie9c13de570644705af8147a91ba02f2e_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="iba6ff5ea086646528fb3be8a7fc8d97a_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i1988c41f6e6149c3a832fe97087a0a7d_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i7ad598b1eccf4536af708abf2a363022_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i98df32958b27455ca343eefe9e81c798_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="icffc050944dd416487d7e4ecc04e965f_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="ib798cddce68d41218df3982eeea19bd1_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ic1a57166d0ca4d52be74fad8e241edf8_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i587de7e154cd4fcbbd086d02ae014d98_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i49e51c3d3b624282bd5f887efb5825c4_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i21885da1c6cc488cb5c733d3f6f8cb47_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i344daace626040eab0b599ffda6fa09f_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i2c036298f54845b2ab2a5600c55fdddd_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i2111da417047432fb42541c6d0d9488e_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i20009c9acfef4520a2b96da0be7ba062_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i68b5dd94706b4891befcd809653efdc4_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i18f2b093d8ef4faeb9106cba76769131_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia0409d6ec51840b99360b72efdabca9b_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib70b837829b5456a899f0f811c0f555d_D20220101-20221231">
        <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="iae85366661da4de081ce1375ed5e731e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib9e2b52ed5bb45ef8c66a470bb6a342a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i81c26265146a4e0cabd3a5ad1dc520f4_D20220101-20221231">
        <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="i81e4d0ae1cdb4710abb92bad9ac6186e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie55ae60220f64f2a9333aff7cb5e7e79_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ifacc8a191ed34cc3956d7cb3c18bfb50_D20220101-20221231">
        <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="iad4f830115f54196885c8808f5f26002_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia5f10baf3e6e431791d90b042d2b7dbe_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id9705c408ea24703bb700064bc764cbb_D20220101-20221231">
        <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="i1d373b49f6174306934e3595c281e1e1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia901fbb0e0df41bdab322f5b54ac1bad_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i18aac435bfc44c8d91524b6f7ac4c4bd_D20220101-20221231">
        <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="i9b83fa1334a04a0a9f161d83664e05ad_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="idc7cf366ab9e4fc58b28582ef840dcbf_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ibdd9b5e3e33e412b94c27b42dbaf106f_D20220101-20221231">
        <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="i52080a684e8546c28f54f8515153e8bc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i840dd08d66f74017901da8e43d8c6597_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib921dcc1cc8d4e88a94ac95519191beb_I20160427">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2016-04-27</instant>
        </period>
    </context>
    <context id="i6d16014c79974e6fb04ffdb4c2528fbe_I20180425">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2018-04-25</instant>
        </period>
    </context>
    <context id="i7dd30073d67c43e2812004d92b58a950_I20160428">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2016-04-28</instant>
        </period>
    </context>
    <context id="ia3238462e92a44c0ae2e712757ed9221_I20181029">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-10-29</instant>
        </period>
    </context>
    <context id="ie6281c7cdeee4c578f9ad7920151d770_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i20998dd8746d49b29fd688382c97aeb7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ifab0fd91112c44ebacbc15ea89678db9_I20200312">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-12</instant>
        </period>
    </context>
    <context id="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1c6c593e915b44a68ec713b3fbb6f688_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie6e2d81d493141e893a1652480ab4ceb_I20220303">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-03</instant>
        </period>
    </context>
    <context id="i60d41a5c281445d585b275a0175e25d8_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i242da384c8724307bae1667f3b953759_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i018c267db8b54cdfacef801a78c54b1c_D20200101-20200927">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-09-27</endDate>
        </period>
    </context>
    <context id="ifea9b05d219041a59056b8419ba26427_D20200928-20211003">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-09-28</startDate>
            <endDate>2021-10-03</endDate>
        </period>
    </context>
    <context id="i59d6aaa50cca4cfc8c89677ea2083144_D20211004-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2021-10-04</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ifeda0162266f40cd80c621dc7f7da27c_D20221003-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-10-03</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iaa0536bb7dff46ebb738c081718a9e47_D20200928-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-09-28</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib4f96f1570614880a47ab7de0dda2e5c_D20201228-20201228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2020-12-28</startDate>
            <endDate>2020-12-28</endDate>
        </period>
    </context>
    <context id="i22b0d598b4fe4da1a5dd6844d5ee95d2_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i9e24c340f95c4cd6bddcd7165f8eafc2_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i70d17755323542f395648f6e1a2b02ef_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="id4860aff35104dc9a6211278167eb085_D20220101-20221231">
        <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="i762eecb173ad44d396bdee4ddaca9d6f_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i394340cf869a431da92e0d5b7725e378_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ic31de56410a94a78b80c1080c8954a0a_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i01f90d958a8b4a06b203557212df7602_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib5f16cd1416c489a93f58f559fee5607_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i49f359f65be049c7a1f584ac2826c227_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="idb41a0641d09484fbb0e795616ffd333_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i67dcdda7132f4c88a2876592c4fa2161_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i45d73e790e074e1aa9cf9bb5112efe60_D20220101-20221231">
        <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="i51307a0012ee4d178b5c962dbfad699c_I20211231">
        <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>2021-12-31</instant>
        </period>
    </context>
    <context id="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231">
        <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="i6cb0c6ba9c924090b591e3c9734f0d98_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="iec52b2002cc947d3a004109ad8cf70d7_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iecc601f5f32b49d286f9088c84383e7b_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic2ae8f77de9b4c799265cfb17a22c13f_D20220101-20221231">
        <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="i26f0a2662e014a07bed517edfdabf032_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ieaf5e8110105465bbdcd174be6c7c3c7_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="icbcf6bf0255a43d490f7a609261ad0d9_D20220101-20221231">
        <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="i5c36aa17c9c346899dd928d5f7b29ba0_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i59acadfa63d64b228e29c41c5b239bb3_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5a430819d9be410f96a87b715ae593a0_D20220101-20221231">
        <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="i8ced57d781a744e6b8adea75821d589e_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7ef3fe8205994c6fa8c7d6dced93ab94_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ibc0be7986f054a1eaa3d2887a5e677b1_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i4526d1f7d6a24522bb915ff66995bb84_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i2cdf322ae13e4b169074cb9700a7529c_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i45af88e9e3d940d4a2e79f5bddd71867_D20220101-20221231">
        <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>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i9129c87dd0e949fb969ceab36fc702ab_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="i883c5601d8c74a2f9beffe621ca1879d_I20221231">
        <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>2022-12-31</instant>
        </period>
    </context>
    <context id="ic97ddb7e41b740f594ea9c53355b616f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i780814879ecc43d5993029565f7273f9_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">cgnx:StateResearchAndExperimentationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibc9067130ed84e849433c76631b763ed_D20220101-20221231">
        <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="ied180d64cab3406b839f2c4087ae0020_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie3c045c9713b435f8160b9ecf1299044_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia4f52443268d461da36b2c2dfbdecdb5_D20220101-20221231">
        <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="ia9cbff9664cb4e56bc444e7febb27086_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i448d9902f4f248c2925c3342dcbdecf7_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i422f78304faf4c55ad914f8bf630dca4_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib7ef6e080e01401eb22ca2d2352c1475_D20220101-20221231">
        <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="i71d263f5bcc8449590269860ead6af02_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if33ecec5c8144a8c966621960cbb84e0_D20220101-20221231">
        <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="if9c291a1b7154cf0b03d68e4559fcfcb_D20220101-20221231">
        <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="i0cd7fb4c2acb452f822e36908fbcacff_I20221231">
        <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="iacacf3e6cbeb43e58c59d7fde4d9d9fb_I20221231">
        <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="if01274f14e124fb7b344e0b335d49b2b_I20221231">
        <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="i780e30c3beb447ec962def693c363e3d_I20221231">
        <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="i736bad4dad6944eca4b443a7133c8509_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7806244a633e43888a9095b38d705253_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i760aa1a4efe3426894eb40a9729d6e10_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idb390063cc074bcbba90cb9e46f79d2f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib1b4629e786947a1a19577acecb99a73_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i5f7d11e3ffad4c89badd6634c0960055_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib6f636e14b00439c8df741688b096e76_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ib542cb5ce63642f7bb269e702188ded4_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="icc5e47429c0d413b88d2ad52922c8590_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia44a70ef129441b9887bde869acad17d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id1a27eb26028461e87485e9119c27fc0_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i433bf20d7ba54aa18508727462fdc63d_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ie8ba94c197bd41f0b3b33d4398e5935b_D20220101-20221231">
        <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="i44288c37097d4942bf6c7e2b92fcd809_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iede40299fb3d4337914719e64abf17cf_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id092db34af2242f3b85505708b3165d5_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i843c8ec204cd46e583da828b478cc847_D20220101-20221231">
        <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="i22e0abbde5ec49e188c6fb263f21bf76_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id9b95c2f672d4c6bbd31953247fe1f51_D20210101-20211231">
        <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:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-10-16</startDate>
            <endDate>2019-10-16</endDate>
        </period>
    </context>
    <context id="iba4bd73731dc4f07bb9f0ef132d075a2_D20200928-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-09-28</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4b5f6ecdd9df4630b3d91537e2ac5fc6_I20191016">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SualabCo.Ltd.Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-10-16</instant>
        </period>
    </context>
    <context id="ic5bb8208f5754b4ebf3c9e59746629a5_D20220607-20220607">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-06-07</startDate>
            <endDate>2022-06-07</endDate>
        </period>
    </context>
    <context id="i94b0adcbc2804c19bee8fa928a2fd7bd_D20220101-20221002">
        <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="ie32ebedb57974f7ea1a721d7abd8efff_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i3a766c86adf146bb876cab5893f555a7_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie65ef75b834449cb92d44e451af3b68f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="icfc3fa7a278e49c2bb0506f47b41decd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3267ddf6eeb345028e6c64305107f057_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i80e9ad4ee7a64dd1baa78b63dba84935_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="id787c23f289843789074e08d2171a18f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i6a523bb16ddb45efaf8e76c8b0927ea1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8e050d2b1282473eb9707ece03c779f0_I20200526">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="i600b8f977640419eb1675e17636d9ca8_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i42ff3e178de64a8195007ed9f4abd8fe_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i4e530fea3f1c4da69ebde9dab9a343ad_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia1e2784fdde844afa0ab2507951775c2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="if0c845f3557243618541b6ef4cdd2295_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ibb076eea4f334a8bbfc7c968502e806b_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i330fd257bfc64e1b88e79d165f517fe8_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i486e59888ae249dd8626fcf8f9b0160b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibf61588c7728470eacd9c2a10751c46d_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5d52417344c14c29bbccd5d541a4024e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie9018d36cd394bc280df55a11358c66e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5e7e9c89e41d4792973df7578c9e9544_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i5f53ad11b6ee4531bc73dec57db7714e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i12348e9eef654011a546d0ae93a4d600_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i96a61c89495a490db9c8b066f5466ae4_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i703a3c7e139a4f648b75f2cca1ababa7_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i2a9a0a4058bb4a49b5c5f5e117d80933_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i1c136c9b24e2498a93308cad0ee1c3ae_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i3a7e6e13bdd3458bb1087c48776d8cac_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i49730dd44e964a35b86a2b1cd195f392_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib05d86b5f147419d8cbeecde9b3a99dd_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OtherRestructuringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i1e7d9d33dca5421bbb53ae9c4825ee6d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:May2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i02cdf9af3e804fda94a3d434209cdf3b_I20230216">
        <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>2023-02-16</instant>
        </period>
    </context>
    <context id="i079eedc5611e42aa9f7b8b809207e9b9_I20211231">
        <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="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231">
        <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="ic0646d282864416d93da63cfb616a046_I20221231">
        <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="i1ca0ca0692cf4818872b66cf958695b4_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if4d1e32d070c424fb97dbbaf7592a5df_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i17153e64a544469680440c49ceeca9d3_I20211231">
        <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="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231">
        <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="ib6c2a40fe85c4fafa0ee0ac6d1deade0_I20221231">
        <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="i24861a7c8fcf4ee3aed146ba4412408b_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i96652bcfac584bada7a427c102168851_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ifc93b5f0ff4a4f40829b8e4e132d3ca2_I20211231">
        <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="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231">
        <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="i32fb706d4a674c1fbcc3266ad01e02de_I20221231">
        <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="ib565d1145cb04bb3afb6b2a92a881195_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231">
        <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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i62200600a0034404accdb4a8fb7ec6dc_I20191231">
        <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>2019-12-31</instant>
        </period>
    </context>
    <context id="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </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="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="eur">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="mxn">
        <measure>iso4217:MXN</measure>
    </unit>
    <unit id="cny">
        <measure>iso4217:CNY</measure>
    </unit>
    <unit id="jpy">
        <measure>iso4217:JPY</measure>
    </unit>
    <unit id="huf">
        <measure>iso4217:HUF</measure>
    </unit>
    <unit id="gbp">
        <measure>iso4217:GBP</measure>
    </unit>
    <unit id="cad">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="chf">
        <measure>iso4217:CHF</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>
    <unit id="employees">
        <measure>cgnx:Employees</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF8yLTEtMS0xLTk0ODUz_af010e15-4e66-4118-b172-923493ec833c">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF80LTEtMS0xLTk0ODUz_a16d4ad4-17d4-452f-bf91-3488d914b5f4">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF81LTEtMS0xLTk0ODUz_ff1f2fdb-36d8-42c3-8747-8ab5566b6be1">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF84LTEtMS0xLTk0ODUz_4742ad32-3d94-441b-bfcb-4e97c6552a94">0000851205</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF85LTEtMS0xLTk0ODUz_476fb7a2-8adf-4d2a-9fed-22e2851009dc">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i6d4b21bf8b104201a47980e6f38dcf81_I20230129"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF8xNy0yLTEtMS05NDg1Mw_33c79ff8-ecfb-4d85-90e3-f0832a15e040"
      unitRef="shares">172536238</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityPublicFloat
      contextRef="iad994e02f63b40f6aeb532436b44712f_I20220703"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF80L2ZyYWc6ZTY3NmJiOWEwMzAzNDAzMWI1OWYwOWM0YTdlN2FhZDAvdGFibGU6YjNiNWUyMTMxYTZlNGFkYTg4MGUxZGVhMDRiZWM1MmQvdGFibGVyYW5nZTpiM2I1ZTIxMzFhNmU0YWRhODgwZTFkZWEwNGJlYzUyZF8xOC0zLTEtMS05NDg1Mw_22e07b5f-5467-4124-8e7e-9dd6b6115997"
      unitRef="usd">7520015752</dei:EntityPublicFloat>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMi0xLTEtMS05NDg1Mw_68ea35c9-c282-4c03-bd8e-2661bf94d474"
      unitRef="usd">-5943000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMi0yLTEtMS05NDg1Mw_c01446cd-fcb9-48c3-84a3-b19182d4144a"
      unitRef="usd">-2206000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMi0zLTEtMS05NDg1Mw_d08c2535-211c-444f-af48-ac0fd79f12b6"
      unitRef="usd">981000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMy0xLTEtMS05NDg1Mw_fd90d5b4-717d-4cad-ae55-20440a228d08"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMy0yLTEtMS05NDg1Mw_285976e5-8ce0-4df5-ba8e-873907b60cc4"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85MS9mcmFnOmNlODNhODBhNzdmMTRhMjU5ODAxOGRhZTBlNDQ1ZDMyL3RhYmxlOmNlMjY1N2RiNWNlZTQ3MTU4NTIzZTJjYmE5ZDg5ZmVmL3RhYmxlcmFuZ2U6Y2UyNjU3ZGI1Y2VlNDcxNTg1MjNlMmNiYTlkODlmZWZfMy0zLTEtMS05NDg1Mw_2a859f02-d64e-4ce7-83ba-0aac4ae6d554"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i2cc370dc4f124b889113b6ce72669f0f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="id713b63307164ed9a4c966f8e78671b2_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="if27faab37b6a4f73863dff11fe969892_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i38d8a560a08c414b9ba3a790eac39db8_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i69bf83df0fde47b09eec084ef339f45a_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <cgnx:ProductWarrantyPeriod
      contextRef="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2">P1Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzEtMS0xLTEtOTQ4NTM_d0c08359-9aec-4ef3-8453-769e1385b8e6"
      unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzEtMi0xLTEtOTQ4NTM_0182ad7f-47ed-4556-9ade-f87cad77e42a"
      unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i8adc22054b3246d7b38929fa21b8160a_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzMtMS0xLTEtOTQ4NTM_393a2130-c503-4b47-94f2-ec56a7be2122">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i2cc370dc4f124b889113b6ce72669f0f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzMtMi0xLTEtOTQ4NTM_39f62e67-1af7-4f12-aa05-26a9f57753ac">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ib36ca5b3740f4f81844d10b264bc38af_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzQtMS0xLTEtOTQ4NTM_b3cfc031-548a-4ecd-8dd2-d2a8981f2957">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i26d0aec8272843a1999a113af386b3aa_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzYtMS0xLTEtOTQ4NTM_f11ea14a-1c7d-46d5-b76e-60575d9cdb82">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ia490e41a796b4535a8b324dc09089a07_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzctMS0xLTEtOTQ4NTM_98a2693a-79f3-4d00-9a8e-9421d102d6b7">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <cgnx:MaximumInvestmentOfCompanyInPartnership
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpjMjk4MWIyMDA2MTc0NjE3YTIzZjQ2ZjVhMmM0OTAwZC90YWJsZXJhbmdlOmMyOTgxYjIwMDYxNzQ2MTdhMjNmNDZmNWEyYzQ5MDBkXzgtMS0xLTEtOTQ4NTM_160b9ce0-260f-4a80-a772-6e77d16e6f04"
      unitRef="number">0.05</cgnx:MaximumInvestmentOfCompanyInPartnership>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="id713b63307164ed9a4c966f8e78671b2_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzEtMS0xLTEtOTQ4NTM_f7403f34-8925-4640-8df5-160d4b357e70">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i38d8a560a08c414b9ba3a790eac39db8_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzItMS0xLTEtOTQ4NTM_7ab4a6f6-ea92-4e68-a531-90c837eaa6ea">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="if27faab37b6a4f73863dff11fe969892_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzMtMS0xLTEtOTQ4NTM_f55fd4ab-275d-4345-b406-181fa44f0f05">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i69bf83df0fde47b09eec084ef339f45a_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZToxZjBmM2ZlM2VjYzE0ZTYyODcxMjViNDNjYzk2ZGQyNC90YWJsZXJhbmdlOjFmMGYzZmUzZWNjMTRlNjI4NzEyNWI0M2NjOTZkZDI0XzQtMS0xLTEtOTQ4NTM_7d99abf6-dfcb-41bc-9ee3-2181ecca78e6">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <cgnx:ProductWarrantyPeriod
      contextRef="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTpiNjAwYjY1ODkzODk0Njg0ODBjNmUzNGExODlhMGNkYS90YWJsZXJhbmdlOmI2MDBiNjU4OTM4OTQ2ODQ4MGM2ZTM0YTE4OWEwY2RhXzEtMS0xLTEtOTQ4NTM_877b4d63-7a30-4f58-8f58-8ef4698fc936">P1Y</cgnx:ProductWarrantyPeriod>
    <cgnx:RevenuePaymentTerms
      contextRef="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDAvZnJhZzpiMmQ0ZTMxN2U2MTM0YzRmYTg3YjA4NmUyNzUwMjU0ZC90YWJsZTo1MmE5NDRmMDIyYjM0MGI2YmFjMTVmMTU3NGMxMmU4NS90YWJsZXJhbmdlOjUyYTk0NGYwMjJiMzQwYjZiYWMxNWYxNTc0YzEyZTg1XzEtMS0xLTEtOTQ4NTM_7a09d676-b9c7-46ce-a94a-08aa8940fc39">P30D</cgnx:RevenuePaymentTerms>
    <us-gaap:OperatingLeaseIncomeComprehensiveIncomeExtensibleList
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyMDk0NjI3OTE2NzE3_f7c0adc1-fff6-4724-8df6-067e74b7d592">http://fasb.org/us-gaap/2022#OperatingIncomeLoss</us-gaap:OperatingLeaseIncomeComprehensiveIncomeExtensibleList>
    <us-gaap:ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration
      contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEyMDk0NjI3OTEyNTM5_b5a3a977-f818-42cc-9d87-d8c18828a4f9">http://fasb.org/us-gaap/2022#ImpairmentOfIntangibleAssetsExcludingGoodwill</us-gaap:ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration>
    <us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec">http://fasb.org/us-gaap/2022#OtherAssetsNoncurrent</us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00">http://fasb.org/us-gaap/2022#OtherAssetsNoncurrent</us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2">http://fasb.org/us-gaap/2022#OtherLiabilitiesNoncurrent</us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c">http://fasb.org/us-gaap/2022#OtherLiabilitiesNoncurrent</us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i9e24c340f95c4cd6bddcd7165f8eafc2_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQxOQ_c6e18e1b-cdd3-47f6-b8c9-e6aa92ec6c90">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i762eecb173ad44d396bdee4ddaca9d6f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTUyMw_6d2dc99c-b10e-466b-8589-3aaaaf893c81">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ic31de56410a94a78b80c1080c8954a0a_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU3NA_94a4b7d7-3177-48cc-8502-c9b251159bed">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i394340cf869a431da92e0d5b7725e378_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU1Mg_549c1e4c-b873-4d43-b5af-c44d64bbde49">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i01f90d958a8b4a06b203557212df7602_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU3MQ_059c1591-f5c2-4f6e-9f51-65b36f7301c1">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzUvZnJhZzpkZWI0NjNiNWVjNzY0NmU5OTMzOTk1OWUwOTIzNTNmYy90YWJsZTowNjY3MTBjMzkwYTI0MzA4YjIyZTI2NTlmNTZhNDdlNS90YWJsZXJhbmdlOjA2NjcxMGMzOTBhMjQzMDhiMjJlMjY1OWY1NmE0N2U1XzEtMS0xLTEtOTQ4NTM_fb70165e-0d49-4ea5-8535-df12e81c0171"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:NumberOfReportableSegments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTAvZnJhZzoyMmM5OTUyODRmMTY0NDQ3YjM3ZDM2ZWI4OWU1M2QwMC90ZXh0cmVnaW9uOjIyYzk5NTI4NGYxNjQ0NDdiMzdkMzZlYjg5ZTUzZDAwXzMw_c65179d0-0aa0-4b05-a4ed-db89faeb5052"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <dei:DocumentType
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYw_840daf1d-f265-40b3-9b23-fbb508262b17">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY0_128c79bb-f345-4a58-bf41-6405564ea4c4">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18yMTQ_6a5d852b-a78c-42b9-b541-6b36e5827041">2022-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY1_6b7e7da4-0fce-49c7-aa8f-c9c6c0bb29c3">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDU3_220a3e8f-872b-43e7-aa08-0442db32af91">001-34218</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYx_0b54db36-8bbb-466a-8c9b-212a56e1f246">COGNEX CORP</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NTgyNDRiNDE0YTMyNDVjYjkyOWE3NTgwNjE5YTYwYWQvdGFibGVyYW5nZTo1ODI0NGI0MTRhMzI0NWNiOTI5YTc1ODA2MTlhNjBhZF8wLTEtMS0xLTk0ODUz_53ce3be0-1fa5-45f8-a102-2105dc14d1d9">MA</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NTgyNDRiNDE0YTMyNDVjYjkyOWE3NTgwNjE5YTYwYWQvdGFibGVyYW5nZTo1ODI0NGI0MTRhMzI0NWNiOTI5YTc1ODA2MTlhNjBhZF8wLTMtMS0xLTk0ODUz_ff374c51-3202-4076-8c8b-c2cc84153a72">04-2713778</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY3_96518920-ddf8-4592-bc33-cf730c019cb3">One Vision Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDU4_3f82d385-0cf8-4024-b02e-1dccc2e4dab7">Natick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDY2_c09f4b4f-a13d-4495-8670-f2412472f700">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYy_c7b10e5e-5a5d-4978-8bc0-579588f1eed5">01760</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDYz_d59327b2-de65-4734-b1d8-005f6282514e">508</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18zMDU5_a1d25517-0419-4624-9783-1baba2d5f7d0">650-3000</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6Y2RjN2VjNzI4ZTMzNDFjYzg5YzAzNTY3ZTk3ZWExM2MvdGFibGVyYW5nZTpjZGM3ZWM3MjhlMzM0MWNjODljMDM1NjdlOTdlYTEzY18xLTAtMS0xLTk0ODUz_eed8e2b6-ffad-44c6-b080-1a39a467e1b5">Common Stock, par value $.002 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6Y2RjN2VjNzI4ZTMzNDFjYzg5YzAzNTY3ZTk3ZWExM2MvdGFibGVyYW5nZTpjZGM3ZWM3MjhlMzM0MWNjODljMDM1NjdlOTdlYTEzY18xLTEtMS0xLTk0ODUz_d9df48ac-b052-4711-99b6-5cf01874c143">CGNX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6Y2RjN2VjNzI4ZTMzNDFjYzg5YzAzNTY3ZTk3ZWExM2MvdGFibGVyYW5nZTpjZGM3ZWM3MjhlMzM0MWNjODljMDM1NjdlOTdlYTEzY18xLTItMS0xLTk0ODUz_3ba839ac-8c69-4595-b070-252cf878d717">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NjUxMDEzODMyYzE0NDQwNGFkY2M0YTExOWI3ZWFjZGMvdGFibGVyYW5nZTo2NTEwMTM4MzJjMTQ0NDA0YWRjYzRhMTE5YjdlYWNkY18wLTItMS0xLTk0ODUz_8ea839cd-a1df-4274-b628-7bb7faffe4f8">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6YzljMzdhOTI1YWI1NDM2M2E3ZjJkZjYzMTkzNTk5YTcvdGFibGVyYW5nZTpjOWMzN2E5MjVhYjU0MzYzYTdmMmRmNjMxOTM1OTlhN18wLTgtMS0xLTk0ODUz_af1d18ac-9ed1-4390-9a69-cad8a3be0365">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6YmYxM2EzZDcyYTlhNDAzYjgwMjU4MDAwMTcwMjgzMWUvdGFibGVyYW5nZTpiZjEzYTNkNzJhOWE0MDNiODAyNTgwMDAxNzAyODMxZV8wLTItMS0xLTk0ODUz_272dc672-71ba-4d1e-87a9-761fda56ffbe">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6ODQ2YjlkNzM4NmE4NDdmMjk4YmEwM2VhMjU2YjRkNTMvdGFibGVyYW5nZTo4NDZiOWQ3Mzg2YTg0N2YyOThiYTAzZWEyNTZiNGQ1M18wLTItMS0xLTk0ODUz_13bb30e9-82fe-4680-b303-30b8594d20db">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6M2Q5YzBjZWM1MDY0NGMyZGJiZWQ3MmY3MWJkY2Q1OTkvdGFibGVyYW5nZTozZDljMGNlYzUwNjQ0YzJkYmJlZDcyZjcxYmRjZDU5OV8wLTEtMS0xLTk0ODUz_448d8d01-a361-4d06-a8e7-45fd1ba9c7a7">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6M2Q5YzBjZWM1MDY0NGMyZGJiZWQ3MmY3MWJkY2Q1OTkvdGFibGVyYW5nZTozZDljMGNlYzUwNjQ0YzJkYmJlZDcyZjcxYmRjZDU5OV8xLTMtMS0xLTk0ODUz_9bc08d07-002a-4886-8863-d160a3addfeb">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6M2Q5YzBjZWM1MDY0NGMyZGJiZWQ3MmY3MWJkY2Q1OTkvdGFibGVyYW5nZTozZDljMGNlYzUwNjQ0YzJkYmJlZDcyZjcxYmRjZDU5OV8yLTMtMS0xLTk0ODUz_c30ca6b2-c224-4d6e-8afd-4f4be1c3534b">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6NzhjNGIyZGMzNzg0NDlmNTlhZjM5NzRmOTU0NGM0Y2IvdGFibGVyYW5nZTo3OGM0YjJkYzM3ODQ0OWY1OWFmMzk3NGY5NTQ0YzRjYl8wLTQtMS0xLTk0ODUz_e5594a0b-18cb-47c7-8081-6c6a8b8925e0">true</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGFibGU6ODg5NzMxMmNhMDJlNDlmNTgyNjJiZTViMjIyYzFjMzYvdGFibGVyYW5nZTo4ODk3MzEyY2EwMmU0OWY1ODI2MmJlNWIyMjJjMWMzNl8wLTQtMS0xLTk0ODUz_d2587e13-5965-4e24-a716-95dec0c2b06e">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="iad994e02f63b40f6aeb532436b44712f_I20220703"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18yNzEx_22e07b5f-5467-4124-8e7e-9dd6b6115997"
      unitRef="usd">7520015752</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i6d4b21bf8b104201a47980e6f38dcf81_I20230129"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xL2ZyYWc6NGRhMWY2YTZhZjQzNDcyMjk3MDI0YzA3Njg0Y2NiZDMvdGV4dHJlZ2lvbjo0ZGExZjZhNmFmNDM0NzIyOTcwMjRjMDc2ODRjY2JkM18yNzc4_33c79ff8-ecfb-4d85-90e3-f0832a15e040"
      unitRef="shares">172536238</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorFirmId
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82MS9mcmFnOmIyZjkxOTllNGI2ODQwMDI5YmM1ZjI2M2EzYmMzZjdhL3RhYmxlOjQ2NGUwZjFhMDM3YzRhZmU4MTkzNzA5NzE5MTRkY2UzL3RhYmxlcmFuZ2U6NDY0ZTBmMWEwMzdjNGFmZTgxOTM3MDk3MTkxNGRjZTNfMS0wLTEtMS05NDg1My90ZXh0cmVnaW9uOjdiYWQxM2EyNWZmMTQ3YmRhODc0ZWU4NWRkODUwZDY4Xzc3_29c1cd46-4c0d-4e5c-b21d-c4e18653f491">248</dei:AuditorFirmId>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNC0xLTEtMS05NDg1Mw_a03801b6-3a8e-4449-8425-dd759340e5af"
      unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNC0zLTEtMS05NDg1Mw_df7b9bec-3b9e-47c6-81d3-399630dec7d4"
      unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNC01LTEtMS05NDg1Mw_55f30b41-8920-4b5e-88f6-f4b42de7c987"
      unitRef="usd">811020000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNS0xLTEtMS05NDg1Mw_bb145ed5-9049-46b4-80c9-907507de998c"
      unitRef="usd">284185000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNS0zLTEtMS05NDg1Mw_ea71aae5-e767-43b5-9ecf-1a59597d4ac7"
      unitRef="usd">277271000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNS01LTEtMS05NDg1Mw_568444e3-332f-444f-8fe9-2b97b28fcb1f"
      unitRef="usd">206421000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNi0xLTEtMS05NDg1Mw_9b424e3a-0ec8-43d1-bdb1-4005aebc7571"
      unitRef="usd">721905000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNi0zLTEtMS05NDg1Mw_d488c23d-2ef9-41f9-8e30-8083017178c4"
      unitRef="usd">759827000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNi01LTEtMS05NDg1Mw_07a34b6b-2366-4205-a044-db46ec97ac29"
      unitRef="usd">604599000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNy0xLTEtMS05NDg1Mw_88b3f877-8804-4637-a0f6-48dff0a626af"
      unitRef="usd">141133000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNy0zLTEtMS05NDg1Mw_30c443c5-14be-485a-92ba-7ebf46dd5cdd"
      unitRef="usd">135372000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfNy01LTEtMS05NDg1Mw_44cfdaa2-c3bf-476f-a446-e4d02bf5ab8a"
      unitRef="usd">130982000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOC0xLTEtMS05NDg1Mw_309772ed-ddd7-4bc5-83aa-af66092cb748"
      unitRef="usd">312107000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOC0zLTEtMS05NDg1Mw_a273f4bd-5e08-4824-a6c1-3e956938d142"
      unitRef="usd">309354000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOC01LTEtMS05NDg1Mw_2dfc17fb-6db6-4c55-862b-5831cb13ce1e"
      unitRef="usd">267593000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:LossFromCatastrophes
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0xLTEtMS0xMDUzNzg_a498bc53-8996-4878-82c9-0b0754cb0e73"
      unitRef="usd">20779000</us-gaap:LossFromCatastrophes>
    <us-gaap:LossFromCatastrophes
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0zLTEtMS0xMDUzNzg_fb69454d-92a8-4cb7-bd4c-5577557837c8"
      unitRef="usd">0</us-gaap:LossFromCatastrophes>
    <us-gaap:LossFromCatastrophes
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS01LTEtMS0xMDUzNzg_d45ca5d0-9e2d-46c7-986d-9b5cd0028f47"
      unitRef="usd">0</us-gaap:LossFromCatastrophes>
    <us-gaap:RestructuringCharges
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0xLTEtMS05NDg1Mw_97edc93f-cbaf-4673-97c4-268413df319c"
      unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS0zLTEtMS05NDg1Mw_2be800fb-ac28-41c0-93ed-ee4717f42ffc"
      unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfOS01LTEtMS05NDg1Mw_598ac4da-1d78-4e74-93dd-68f5da26adf7"
      unitRef="usd">15924000</us-gaap:RestructuringCharges>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTAtMS0xLTEtOTQ4NTM_237df983-d32c-4633-b032-caa2f483cdb1"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTAtMy0xLTEtOTQ4NTM_430dcd5c-d154-4108-b55b-f122ff67e13c"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTAtNS0xLTEtOTQ4NTM_368f045c-493f-4493-98fd-ece71bc6bd30"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:OperatingIncomeLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTEtMS0xLTEtOTQ4NTM_10b2de9c-76b2-46f1-b6ae-67b2db25a370"
      unitRef="usd">246229000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTEtMy0xLTEtOTQ4NTM_439c9cb0-2329-4e41-8a04-0494c2267dd1"
      unitRef="usd">315101000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTEtNS0xLTEtOTQ4NTM_352c63fa-0818-44df-a008-fa0e2be0b2d9"
      unitRef="usd">170529000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTItMS0xLTEtOTQ4NTM_5ea4c2cf-f38a-473a-a986-6d18cf1d4221"
      unitRef="usd">-1837000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTItMy0xLTEtOTQ4NTM_60be7996-f301-434b-aa54-7c309236cc12"
      unitRef="usd">-2270000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTItNS0xLTEtOTQ4NTM_f96fc1d5-fde7-44a6-8063-668b36720a78"
      unitRef="usd">3697000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTMtMS0xLTEtOTQ4NTM_2e0100a7-a03c-4121-b42e-46146318ef8d"
      unitRef="usd">6715000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTMtMy0xLTEtOTQ4NTM_d7c052cb-bc68-4a94-b204-c0c1333b65a0"
      unitRef="usd">6660000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTMtNS0xLTEtOTQ4NTM_e0702a10-a853-4924-ac7b-e5deec26ada7"
      unitRef="usd">12994000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTQtMS0xLTEtOTQ4NTM_26a66c54-71c9-4dbe-bd77-9dcf38f8e545"
      unitRef="usd">-412000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTQtMy0xLTEtOTQ4NTM_fb401717-1219-479b-8d0b-a9c69cc82b7b"
      unitRef="usd">-591000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTQtNS0xLTEtOTQ4NTM_787b7436-8e93-42f3-9807-bd92bd86c2b4"
      unitRef="usd">-309000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTUtMS0xLTEtOTQ4NTM_f0b8dd0d-f400-4dba-9647-56b8a5dee381"
      unitRef="usd">250695000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTUtMy0xLTEtOTQ4NTM_d34583c6-4aab-4c14-8256-abe2f7dcab6c"
      unitRef="usd">318900000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTUtNS0xLTEtOTQ4NTM_8ceb9e22-c547-4a9a-81d1-0546a69b14f8"
      unitRef="usd">186911000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTYtMS0xLTEtOTQ4NTM_b9d59d6d-8677-4fba-8463-d736c983af9a"
      unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTYtMy0xLTEtOTQ4NTM_310b8389-afd1-4f0f-b341-852197ec00d5"
      unitRef="usd">39019000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTYtNS0xLTEtOTQ4NTM_f0ebb66f-5082-4493-853a-d8f69d261420"
      unitRef="usd">10725000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTktMS0xLTEtOTQ4NTM_e05eab04-12cd-45dd-994c-b6a18e0874b5"
      unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTktMy0xLTEtOTQ4NTM_e6e0e78b-46ff-477d-a889-c97ccc66a81f"
      unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMTktNS0xLTEtOTQ4NTM_a169af78-d9d5-4462-bc6b-0afc252b8fc5"
      unitRef="usd">176186000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjQtMS0xLTEtOTQ4NTM_7e752f54-3952-4d0b-9bc1-a0d1784ff0ed"
      unitRef="usdPerShare">1.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjQtMy0xLTEtOTQ4NTM_624f9279-ddfb-496d-bc9d-aad01427b27d"
      unitRef="usdPerShare">1.59</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjQtNS0xLTEtOTQ4NTM_32c01e5c-e75a-4bc0-a550-5fdb3305b9b0"
      unitRef="usdPerShare">1.02</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjctMS0xLTEtOTQ4NTM_9c2796b2-bff2-45fb-8cc3-a4b500e3c676"
      unitRef="usdPerShare">1.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjctMy0xLTEtOTQ4NTM_25a085d4-2ac8-487e-9947-3477ec65a759"
      unitRef="usdPerShare">1.56</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMjctNS0xLTEtOTQ4NTM_c4d3f29e-9612-444b-98b7-ba5995520748"
      unitRef="usdPerShare">1.00</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzAtMS0xLTEtOTQ4NTM_23231e28-f6a3-4e8f-8036-8be7b0ebc74c"
      unitRef="shares">173407000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzAtMy0xLTEtOTQ4NTM_14219f86-8d69-4178-9af4-62d456cca17c"
      unitRef="shares">176463000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzAtNS0xLTEtOTQ4NTM_76dac7fb-c1ce-471d-8165-c1b2486a4e4d"
      unitRef="shares">173489000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzEtMS0xLTEtOTQ4NTM_5b67161d-9d16-4ffc-a935-58c722b567a6"
      unitRef="shares">174869000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzEtMy0xLTEtOTQ4NTM_d35df81f-df41-4af9-b35e-3f20d2f69648"
      unitRef="shares">179916000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzEtNS0xLTEtOTQ4NTM_71454d98-0c64-48b6-9955-d3a829eb293b"
      unitRef="shares">176592000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMS0xLTEtOTQ4NTM_71ac4f79-0b47-4b1c-9203-cf27881a3c02"
      unitRef="usdPerShare">0.265</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMy0xLTEtOTQ4NTM_28a70386-0689-43c3-9d6a-e7fb85b1e3ce"
      unitRef="usdPerShare">0.245</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtNS0xLTEtOTQ4NTM_6a9764f9-eb8c-4325-85b1-672921555b0d"
      unitRef="usdPerShare">2.225</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:NetIncomeLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMy0xLTEtMS05NDg1Mw_e05eab04-12cd-45dd-994c-b6a18e0874b5"
      unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMy0zLTEtMS05NDg1Mw_e6e0e78b-46ff-477d-a889-c97ccc66a81f"
      unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMy01LTEtMS05NDg1Mw_a169af78-d9d5-4462-bc6b-0afc252b8fc5"
      unitRef="usd">176186000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjpjMDkyOGQ2MGJmZDQ0NmUwOTc2ODkzNzVjZTIyMGUxNV80Ng_b24c7a2b-96f5-4f02-9648-3a5d7a780056"
      unitRef="usd">-5943000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjpjMDkyOGQ2MGJmZDQ0NmUwOTc2ODkzNzVjZTIyMGUxNV81MA_ccabaea2-67ca-4a17-9f44-fbe680a3dafa"
      unitRef="usd">-2206000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjpjMDkyOGQ2MGJmZDQ0NmUwOTc2ODkzNzVjZTIyMGUxNV81OA_45837a24-528d-4c1f-8ffd-e1587950cf84"
      unitRef="usd">981000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMS0xLTEtOTQ4NTM_2f146e76-b7e1-45ee-8346-1cdabffe0c01"
      unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMS0xLTEtOTQ4NTM_f411238b-d556-48ef-87d8-0c74344861cd"
      unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtMy0xLTEtOTQ4NTM_7453aead-eac1-4dce-bb98-1567f5828645"
      unitRef="usd">-7152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTEtNS0xLTEtOTQ4NTM_faa46adf-7913-42a8-bf9a-debd2c787272"
      unitRef="usd">6478000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtMS0xLTEtOTQ4NTM_5134a53b-b4bd-45bd-9005-2f3b45101be3"
      unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtMS0xLTEtOTQ4NTM_7df3b38b-9eed-451c-91c9-dad594f394f1"
      unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtMy0xLTEtOTQ4NTM_a89530c1-d541-45a1-b174-9e89bfe2b96d"
      unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTMtNS0xLTEtOTQ4NTM_eaca3bd1-93b0-47c0-b17e-5025b545c441"
      unitRef="usd">4119000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTQtMS0xLTEtOTQ4NTM_99a2133a-6eec-49d6-819f-9def9b92b902"
      unitRef="usd">-16970000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTQtMy0xLTEtOTQ4NTM_97bd4db7-750f-42ec-b07a-b04bdd6af584"
      unitRef="usd">-7388000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTQtNS0xLTEtOTQ4NTM_65aaabf3-dd32-44fc-9cda-f8ab7002e442"
      unitRef="usd">2359000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctMS0xLTEtOTQ4NTM_1daa9da4-dff6-4092-bb9f-bba1fdb4e221"
      unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctMS0xLTEtOTQ4NTM_5e2fa5bb-1801-41b6-8319-00845adbd766"
      unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctMy0xLTEtOTQ4NTM_6738aad5-299f-4246-a3eb-ac1163c298f7"
      unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTctNS0xLTEtOTQ4NTM_1f58ade5-3e21-4694-9285-f9209ab6c19d"
      unitRef="usd">1115000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTgtMS0xLTEtOTQ4NTM_406bacc5-7a18-4fc3-80a7-535f0fafacfd"
      unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTgtMy0xLTEtOTQ4NTM_b7587fd0-def9-42c0-854a-4f8a32f4da0f"
      unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMTgtNS0xLTEtOTQ4NTM_903274f4-5db0-4afe-af7e-496a7edc9efd"
      unitRef="usd">1115000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjAtMS0xLTEtOTQ4NTM_0d3e0d11-cbac-4b08-88e3-39b605afd935"
      unitRef="usd">-21355000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjAtMy0xLTEtOTQ4NTM_e39e7611-f1bd-4b14-9fbc-010ee1a73d19"
      unitRef="usd">-14141000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjAtNS0xLTEtOTQ4NTM_a19ec637-568e-402d-b374-e24b881b5e9f"
      unitRef="usd">3474000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjEtMS0xLTEtOTQ4NTM_697b7e1f-b82f-47ce-8a2c-62a5d92d32b0"
      unitRef="usd">194170000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjEtMy0xLTEtOTQ4NTM_175819a4-6d0c-4dd9-b329-378a4a15a027"
      unitRef="usd">265740000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83My9mcmFnOjczNTRmNmJiZmIyODQzZTRiYmI3MWNjYzIyMDhjODU0L3RhYmxlOmMzMzIzNmVhZTRmOTQ5MmQ5NDQyYmMwM2Q2MDBiNmI4L3RhYmxlcmFuZ2U6YzMzMjM2ZWFlNGY5NDkyZDk0NDJiYzAzZDYwMGI2YjhfMjEtNS0xLTEtOTQ4NTM_6aca1a40-81a8-46ce-841d-0174aba8c81c"
      unitRef="usd">179660000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNS0xLTEtMS05NDg1Mw_db0c2f8b-3d51-4b3d-9ce8-152b6c2a06b0"
      unitRef="usd">181374000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNS0zLTEtMS05NDg1Mw_6ab4059a-15ec-4240-8752-04bce41c62bf"
      unitRef="usd">186161000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzQz_951e75db-8344-4d16-ad34-3537be1dc396"
      unitRef="usd">223545000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzUw_e5019456-56bc-48eb-9c7b-e591d2612a2c"
      unitRef="usd">137124000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzExNg_0d9c0b99-ef73-4aa0-ad9b-ae4fa9982591"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmE3ODAyMTkxMzAxMjQ2MDk5OGExM2E2MzdiYjYzNWEwXzExNg_0e17de06-acce-4eaf-8d12-5ab84d6dad0d"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0xLTEtMS05NDg1Mw_2db00c3f-d57b-4c1b-96c1-8eecc81d662d"
      unitRef="usd">218759000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNi0zLTEtMS05NDg1Mw_72737ba7-b69b-40ad-bc34-4a666855eef2"
      unitRef="usd">137455000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmI4NmU3MGZhNjc2NjRlYjVhZWVkMzAxZGFiZDYwMDBkXzU2_a3d3c554-c6fa-4f68-8314-e07162a47bd1"
      unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0wLTEtMS05NDg1My90ZXh0cmVnaW9uOmI4NmU3MGZhNjc2NjRlYjVhZWVkMzAxZGFiZDYwMDBkXzYz_e081e593-7b5f-426e-9ccb-a2e28743c632"
      unitRef="usd">776000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0xLTEtMS05NDg1Mw_051bfa7d-f631-4095-93f1-af9873734342"
      unitRef="usd">125417000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNy0zLTEtMS05NDg1Mw_b7ea835b-8eb9-4d14-bcb6-e444f4d641cd"
      unitRef="usd">130348000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOC0xLTEtMS05NDg1Mw_d0456dc4-b8fc-4994-870a-9bfb69199b8e"
      unitRef="usd">2179000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOC0zLTEtMS05NDg1Mw_a5b32b6b-26ad-4367-b443-ce956320757e"
      unitRef="usd">3990000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:InventoryNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOS0xLTEtMS05NDg1Mw_42f0f1dc-82c8-4636-a605-b75c1c6c06a3"
      unitRef="usd">122480000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfOS0zLTEtMS05NDg1Mw_7ac7fd6d-e6e7-4bce-8640-45b523e8f133"
      unitRef="usd">113102000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTAtMS0xLTEtOTQ4NTM_f0539712-d0d4-481f-9eac-232d589f825d"
      unitRef="usd">67490000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTAtMy0xLTEtOTQ4NTM_d578d05d-bd96-4c71-8f16-520ce6882fba"
      unitRef="usd">68742000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTEtMS0xLTEtOTQ4NTM_899fc490-ef22-48a5-8fdd-189da7fb43a8"
      unitRef="usd">717699000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTEtMy0xLTEtOTQ4NTM_6f051e80-9892-4a8b-8c0b-05849c585c66"
      unitRef="usd">639798000</us-gaap:AssetsCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl80Nw_7d98bfd7-ea68-4c32-871b-5be73ff0465a"
      unitRef="usd">476148000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl81NA_3074dbbe-a159-4ceb-9059-7c46f41cf778"
      unitRef="usd">587981000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl8xMjA_35a43180-bcbc-4472-844d-226b319aed77"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoyNzY5MTg4OWY1NWI0NzEyODdmZTUxNjFmNDZmNTAzMl8xMjA_9dd6bde6-99de-4e85-88dc-aeff80854c77"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent>
    <us-gaap:LongTermInvestments
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMS0xLTEtOTQ4NTM_a9059490-de3a-49e1-8923-e1af4169cc07"
      unitRef="usd">454117000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTItMy0xLTEtOTQ4NTM_9c8c742e-99db-4adc-a533-88c491e90a40"
      unitRef="usd">583748000</us-gaap:LongTermInvestments>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTMtMS0xLTEtOTQ4NTM_0bfb1ccf-859a-4fb1-8027-0b77c5f35682"
      unitRef="usd">79714000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTMtMy0xLTEtOTQ4NTM_683848b9-d15f-4131-853e-ff72c9b4108b"
      unitRef="usd">77546000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTQtMS0xLTEtOTQ4NTM_74068664-1461-41b8-b287-c59301c03bcf"
      unitRef="usd">37682000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTQtMy0xLTEtOTQ4NTM_ff15ee84-703b-4faf-b775-136deecc88e9"
      unitRef="usd">23157000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTUtMS0xLTEtOTQ4NTM_454ec042-525d-499e-bf56-e8f08231c568"
      unitRef="usd">242630000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTUtMy0xLTEtOTQ4NTM_7a2e9218-b0cb-4601-82c8-68f09810c5dc"
      unitRef="usd">241713000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTYtMS0xLTEtOTQ4NTM_f82c0236-a431-4614-860e-43013726aa76"
      unitRef="usd">12414000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTYtMy0xLTEtOTQ4NTM_7bb8682e-738a-4cf5-8320-c4f9c68c8aae"
      unitRef="usd">11888000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTctMS0xLTEtOTQ4NTM_688d5e71-edfe-4da6-8637-4757d89282cd"
      unitRef="usd">407241000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTctMy0xLTEtOTQ4NTM_677b89b8-a8fd-42d0-805e-fcd7b8639c85"
      unitRef="usd">418570000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTgtMS0xLTEtOTQ4NTM_f6dfb410-d6f4-40a0-8584-6c5e92acbc66"
      unitRef="usd">6643000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTgtMy0xLTEtOTQ4NTM_e3c73615-9e11-4a27-b072-67d44dbccdb6"
      unitRef="usd">7242000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTktMS0xLTEtOTQ4NTM_07757882-c4d3-4f32-ab51-b0a8931be09d"
      unitRef="usd">1958140000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMTktMy0xLTEtOTQ4NTM_18144418-3a15-4bb4-a51e-724a78659df8"
      unitRef="usd">2003662000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjMtMS0xLTEtOTQ4NTM_30b0d5e7-9e61-4ea4-b5a2-9ecc1c4aef55"
      unitRef="usd">27103000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjMtMy0xLTEtOTQ4NTM_ffa8387b-6457-4fd0-b878-f6b6e2a53370"
      unitRef="usd">44051000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjQtMS0xLTEtOTQ4NTM_61acddc1-f785-4711-9585-b9f5fb615e6b"
      unitRef="usd">93235000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjQtMy0xLTEtOTQ4NTM_7565ffc2-5a63-4f29-b2d6-bdf273d83f9f"
      unitRef="usd">92432000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjUtMS0xLTEtOTQ4NTM_7bbd7e04-b7fe-48a8-a28d-4273807f255f"
      unitRef="usd">18129000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjUtMy0xLTEtOTQ4NTM_0ad8d25a-673c-4420-9b15-8280c7eb5687"
      unitRef="usd">8577000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjYtMS0xLTEtOTQ4NTM_ab685036-43db-4ffa-8587-aa6630942abd"
      unitRef="usd">40787000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjYtMy0xLTEtOTQ4NTM_43c87e9f-6a00-4b75-852b-ec7248936050"
      unitRef="usd">35743000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjctMS0xLTEtOTQ4NTM_2a1947fb-360c-4829-acac-ccb3de419312"
      unitRef="usd">8454000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjctMy0xLTEtOTQ4NTM_54959a8a-9623-44dd-befc-2fb2110a4c03"
      unitRef="usd">7786000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjgtMS0xLTEtOTQ4NTM_4fe99310-b8ba-43dc-a993-b09a26df433a"
      unitRef="usd">187708000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjgtMy0xLTEtOTQ4NTM_e989b9e9-8fc3-45a8-ae57-b9755bf15f33"
      unitRef="usd">188589000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjktMS0xLTEtOTQ4NTM_6dd2ab7f-581b-42f9-956c-44c9d63a4326"
      unitRef="usd">31298000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMjktMy0xLTEtOTQ4NTM_6d2c2733-ea24-4e42-9d7e-e41155064ad2"
      unitRef="usd">17795000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzAtMS0xLTEtOTQ4NTM_e7884f76-dc57-44f2-84e1-5d330bcaf9f5"
      unitRef="usd">249961000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzAtMy0xLTEtOTQ4NTM_deaecae3-cd9e-47ec-8355-165d3b2233ef"
      unitRef="usd">293769000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzEtMS0xLTEtOTQ4NTM_356da1ec-b9dc-4531-b779-2eb24df5b6e3"
      unitRef="usd">15866000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzEtMy0xLTEtOTQ4NTM_86c726c5-4e4c-471d-a7fb-6dccd0e46436"
      unitRef="usd">14780000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzItMS0xLTEtOTQ4NTM_3ca5b381-82b9-4fd9-ba73-7a75c6dd98e2"
      unitRef="usd">33008000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzItMy0xLTEtOTQ4NTM_ea032e6b-ac72-4c20-ab34-b25692b3fcb9"
      unitRef="usd">43160000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzMtMS0xLTEtOTQ4NTM_dc1dc3f6-3b46-410e-befe-1717b780ae29"
      unitRef="usd">1905000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzMtMy0xLTEtOTQ4NTM_d609f367-b505-4d82-b5b1-c22277cd2f60"
      unitRef="usd">15476000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzQtMS0xLTEtOTQ4NTM_d61ccd62-2037-47c3-afa7-63a8feb5bccb"
      unitRef="usd">519746000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzQtMy0xLTEtOTQ4NTM_2799ab3d-1d5e-4928-8ec3-7b459924c9a2"
      unitRef="usd">573569000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzYtMS0xLTEtOTQ4NTM_7054eff8-c627-4014-9c0d-96f50c243ad0"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzYtMy0xLTEtOTQ4NTM_988748dc-e3d7-4693-bee1-8608fa6cb349"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMTc_bc4029f7-3933-4d60-a5af-4b46c5754cb3"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMTc_c8061de0-456a-42a9-a58a-a80af6731677"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMjQ_7dd2c4f5-d33f-46ce-9e6d-51bbc16f39ae"
      unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMjQ_bd9d1eda-1c0b-4034-81b9-0f33793cb3c1"
      unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_72bc91c9-eb4c-4eff-b9fa-9a50f3bd6ac5"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_82ed88d3-1c71-4d62-9632-9aa925f4b9af"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_9b5b2c9d-9879-4d68-a6b4-9deebe6ec421"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjoxMGYzZjRhNGQ3OTQ0MDI3YTExYzNhNTg5NzBlMWY3Ml81NDk3NTU4MTQwMzM_c9c15a5d-5461-41a8-b345-2bcc12f5b294"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValueOutstanding
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMS0xLTEtOTQ4NTM_bb78021c-93be-4ce4-9574-aae71e07f021"
      unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:PreferredStockValueOutstanding
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzgtMy0xLTEtOTQ4NTM_9fdfb9d3-6573-473b-8419-f0e320d9a8d0"
      unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQxMDE_40ea117d-56a0-4da9-9ef8-24a3b4422e6a"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQxMDE_9b3d7737-3f6a-483f-9380-6b63b89d3f0d"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwNjQ_6721727d-cf91-49eb-9287-7a1c9d33c1ec"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwNjQ_ff901b6a-e3a1-446b-90be-78c08c39784e"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwODM_45768753-a7a9-4129-a139-b844aff7b5ab"
      unitRef="shares">172631000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwODM_81c169ec-c26c-4ee9-9a99-7cd456dd799b"
      unitRef="shares">172631000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwOTM_0252a484-07ae-4cd3-b2b3-1f112755e16c"
      unitRef="shares">175481000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMC0xLTEtOTQ4NTMvdGV4dHJlZ2lvbjo2NGUwZGE5NWYyZDA0ZGJiOTgxZTVmM2RhMzUyMGYxM181NDk3NTU4MTQwOTM_1ccd91d6-9d5d-4bc7-a8f8-69cde6aa0e22"
      unitRef="shares">175481000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValueOutstanding
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMS0xLTEtOTQ4NTM_bde9533f-cd33-4630-9052-d5d3ceb5be15"
      unitRef="usd">345000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfMzktMy0xLTEtOTQ4NTM_37991a25-e45b-479d-bd57-6417a8d275f8"
      unitRef="usd">351000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDAtMS0xLTEtOTQ4NTM_e5b684e1-72b7-422e-a24b-f665285ceff9"
      unitRef="usd">979167000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDAtMy0xLTEtOTQ4NTM_14f945b9-1a02-4164-abf0-b9098f21c8c3"
      unitRef="usd">914802000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDEtMS0xLTEtOTQ4NTM_992a66c0-9051-4faa-b79d-cbab3d3af388"
      unitRef="usd">528179000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDEtMy0xLTEtOTQ4NTM_ae6fe070-adff-4364-869c-3719ad08dec3"
      unitRef="usd">562882000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDItMS0xLTEtOTQ4NTM_897ee553-0903-422b-9774-dfa31cab5d65"
      unitRef="usd">-69297000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDItMy0xLTEtOTQ4NTM_32df4f9c-bbfa-4acb-b639-4226ca2e06c6"
      unitRef="usd">-47942000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDMtMS0xLTEtOTQ4NTM_e1efa4dd-6613-42a8-81e9-49969b2137ac"
      unitRef="usd">1438394000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDMtMy0xLTEtOTQ4NTM_84927802-408e-4d3c-9f96-7639abf3645c"
      unitRef="usd">1430093000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDQtMS0xLTEtOTQ4NTM_00a1c494-46b7-4610-be0a-80693d00c767"
      unitRef="usd">1958140000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF83OS9mcmFnOjRiNmE4NDRjMDQxOTQwMzBhODkyMDQ3OWRiNzZkM2YzL3RhYmxlOjEyZjY3NTk0MTdkZTQ3ZDQ4YjJjN2I0YTcxMDY1YTM0L3RhYmxlcmFuZ2U6MTJmNjc1OTQxN2RlNDdkNDhiMmM3YjRhNzEwNjVhMzRfNDQtMy0xLTEtOTQ4NTM_9f266a3e-f4a0-4c26-a460-c43d3cf4d2f0"
      unitRef="usd">2003662000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNC0xLTEtMS05NDg1Mw_e05eab04-12cd-45dd-994c-b6a18e0874b5"
      unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNC0zLTEtMS05NDg1Mw_e6e0e78b-46ff-477d-a889-c97ccc66a81f"
      unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNC01LTEtMS05NDg1Mw_a169af78-d9d5-4462-bc6b-0afc252b8fc5"
      unitRef="usd">176186000</us-gaap:NetIncomeLoss>
    <us-gaap:StockOptionPlanExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNy0xLTEtMS05NDg1Mw_14c8aa78-f876-4e63-a09e-4ebb98850a08"
      unitRef="usd">54505000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNy0zLTEtMS05NDg1Mw_71ed61bf-22c3-48c1-8439-5f132c46bf56"
      unitRef="usd">43774000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNy01LTEtMS05NDg1Mw_6800c9e3-98a8-423c-b36b-3a02577c4f58"
      unitRef="usd">42661000</us-gaap:StockOptionPlanExpense>
    <us-gaap:Depreciation
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOC0xLTEtMS05NDg1Mw_9dfc4fdd-3a50-4ef6-adfa-36886fe2b48d"
      unitRef="usd">16347000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOC0zLTEtMS05NDg1Mw_eb7eb78c-8d68-4d2e-bed5-411dcb171546"
      unitRef="usd">16616000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOC01LTEtMS05NDg1Mw_6c39feb3-e686-4bf4-ba29-5ad2d78cab5e"
      unitRef="usd">22139000</us-gaap:Depreciation>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOS0xLTEtMS05NDg1Mw_82948e54-10e6-4d87-b908-ea9e5e611cfd"
      unitRef="usd">-19000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOS0zLTEtMS05NDg1Mw_aa36e5cb-212d-4496-88e0-36796033b2a0"
      unitRef="usd">-33000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfOS01LTEtMS05NDg1Mw_066a9bf4-62ab-4e5d-800f-319532815db9"
      unitRef="usd">-1817000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTAtMS0xLTEtOTQ4NTM_a79507b7-7d1d-43a2-9468-1ec5bc4c9058"
      unitRef="usd">3274000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTAtMy0xLTEtOTQ4NTM_994eec85-3eae-434d-b8e9-07faf9650666"
      unitRef="usd">3667000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTAtNS0xLTEtOTQ4NTM_7b75dd69-9414-431a-89fb-abca1c2d8f45"
      unitRef="usd">4364000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTEtMS0xLTEtOTQ4NTM_8d0c3ba3-22a1-43e3-983e-e3166c2ee90a"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTEtMy0xLTEtOTQ4NTM_3db5fc61-531a-4c66-a84e-01c7f4ba7f9b"
      unitRef="usd">0</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTEtNS0xLTEtOTQ4NTM_5adfdb22-068f-445c-b585-67063597e467"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <cgnx:NonCashLossFromCatastrophes
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMS0xLTEtMTA5Nzc2_7967e8a8-9182-4458-8b64-227f46a74e65"
      unitRef="usd">46372000</cgnx:NonCashLossFromCatastrophes>
    <cgnx:NonCashLossFromCatastrophes
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMy0xLTEtMTA5Nzc2_1ef7accc-ff2d-458f-80fe-befd4e09ea34"
      unitRef="usd">0</cgnx:NonCashLossFromCatastrophes>
    <cgnx:NonCashLossFromCatastrophes
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItNS0xLTEtMTA5Nzc2_b6996c04-5367-40ab-ace6-5f3d9351a758"
      unitRef="usd">0</cgnx:NonCashLossFromCatastrophes>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMS0xLTEtOTQ4NTM_68c4d55b-5193-47b2-a107-9b2d48322ac8"
      unitRef="usd">3084000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItMy0xLTEtOTQ4NTM_02efa3a0-40a9-4768-aa7f-40c12ffcb177"
      unitRef="usd">2573000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTItNS0xLTEtOTQ4NTM_cc14a63c-cdc1-4e3a-b25e-e75ba28b43ab"
      unitRef="usd">9908000</cgnx:ExcessAndObsoleteInventoryCharges>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTMtMS0xLTEtOTQ4NTM_1a936964-cdb0-4d8d-8b60-96bd9645dd3a"
      unitRef="usd">0</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTMtMy0xLTEtOTQ4NTM_cc788e49-072e-43dc-b723-2a9fa78d383b"
      unitRef="usd">0</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTMtNS0xLTEtOTQ4NTM_3e3f2d13-ff2a-4b4d-961e-f63f2ca1258f"
      unitRef="usd">3427000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTQtMS0xLTEtOTQ4NTM_2052c93d-614d-420f-b2de-abea6f6621d9"
      unitRef="usd">-4968000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTQtMy0xLTEtOTQ4NTM_afadff12-5e3c-4cd6-8feb-dc86b2c31fea"
      unitRef="usd">-4887000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTQtNS0xLTEtOTQ4NTM_8dfa158d-c625-49c5-9a72-147315b4e8c8"
      unitRef="usd">-1274000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTUtMS0xLTEtOTQ4NTM_84d9574f-7fde-4479-a684-a74e1b013191"
      unitRef="usd">-182000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTUtMy0xLTEtOTQ4NTM_591f4620-5e66-47b1-bcf9-c5df82f12acf"
      unitRef="usd">236000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTUtNS0xLTEtOTQ4NTM_488bfbc1-503f-4e9c-b2e9-d7c4f0851253"
      unitRef="usd">4119000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTYtMS0xLTEtOTQ4NTM_cd964109-6006-4db7-b2f5-43b829d957bc"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTYtMy0xLTEtOTQ4NTM_2bd08d28-feba-415d-99c3-c95d7a85e497"
      unitRef="usd">0</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTYtNS0xLTEtOTQ4NTM_10b868bd-93be-482c-a2f7-0a593f3a203a"
      unitRef="usd">-114000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTctMS0xLTEtOTQ4NTM_a20e8c92-82a6-4fa1-8f2b-70f949804c56"
      unitRef="usd">27338000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTctMy0xLTEtOTQ4NTM_b032f8a4-5da8-461e-91a1-c53e9271edda"
      unitRef="usd">3118000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTctNS0xLTEtOTQ4NTM_2f3b36f5-a6b4-4e75-a116-8492a8ab98b3"
      unitRef="usd">3353000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTktMS0xLTEtOTQ4NTM_b5e3d805-0b0d-4b53-a60e-2a2cdfa595b3"
      unitRef="usd">-3454000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTktMy0xLTEtOTQ4NTM_b7077f35-d1ea-4d5a-9864-73af4f7b1a17"
      unitRef="usd">4503000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMTktNS0xLTEtOTQ4NTM_27c46f83-c4ab-4116-9830-77d6025b730d"
      unitRef="usd">21285000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjAtMS0xLTEtOTQ4NTM_ae3952f4-fc0c-4682-90ec-70f93aeaab0f"
      unitRef="usd">-1806000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjAtMy0xLTEtOTQ4NTM_f08a214f-0db6-4602-b539-4c087af8f7e9"
      unitRef="usd">-1637000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjAtNS0xLTEtOTQ4NTM_8c047f77-9f51-470c-a0c6-fd0c8ebd4dbb"
      unitRef="usd">848000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjEtMS0xLTEtOTQ4NTM_7a7f8586-5722-47a3-8a5f-98ff07457286"
      unitRef="usd">48934000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjEtMy0xLTEtOTQ4NTM_312e05ba-6c7f-4f32-904d-52a700634325"
      unitRef="usd">54920000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjEtNS0xLTEtOTQ4NTM_fc391bc8-19d9-444e-81af-14049ef7076d"
      unitRef="usd">10319000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjItMS0xLTEtOTQ4NTM_e69b203c-27b2-4d81-8bd6-153ad7356112"
      unitRef="usd">6998000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjItMy0xLTEtOTQ4NTM_b743af5d-08c4-480a-9820-0a8fba805292"
      unitRef="usd">32342000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjItNS0xLTEtOTQ4NTM_78443926-1cab-47d6-8087-b30b25b3b002"
      unitRef="usd">9909000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjMtMS0xLTEtOTQ4NTM_0b9b9b0c-08b0-4563-8761-d3c2182d03ff"
      unitRef="usd">-17277000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjMtMy0xLTEtOTQ4NTM_3cd494d1-5891-4a96-9a08-e77e983559a3"
      unitRef="usd">27828000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjMtNS0xLTEtOTQ4NTM_a02480b6-ef02-45c7-bd74-901106321a36"
      unitRef="usd">-1688000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjQtMS0xLTEtOTQ4NTM_b5b1ab64-1641-4d46-ad2c-5f39a1d64100"
      unitRef="usd">2056000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjQtMy0xLTEtOTQ4NTM_06df209f-4a5d-4b42-8d1d-4d411753f375"
      unitRef="usd">16861000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjQtNS0xLTEtOTQ4NTM_48c3a65a-90cc-4a48-855f-f6191e37030c"
      unitRef="usd">24542000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjUtMS0xLTEtOTQ4NTM_d54a4f29-7b16-4cf3-91e2-b2261c26f123"
      unitRef="usd">-444000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjUtMy0xLTEtOTQ4NTM_c1d6b8b1-ade1-4734-9315-bea05d403e4d"
      unitRef="usd">-6401000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjUtNS0xLTEtOTQ4NTM_98e22507-9bd1-415c-bbbe-3f160595fa98"
      unitRef="usd">-22973000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjYtMS0xLTEtOTQ4NTM_d0c4f4e5-f14e-4c1c-b18f-0b44b94074f7"
      unitRef="usd">4886000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjYtMy0xLTEtOTQ4NTM_ca0bfd53-2acb-4855-b240-518f9bc9df22"
      unitRef="usd">14417000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjYtNS0xLTEtOTQ4NTM_8156505b-8f5b-4792-a8dc-ec55d76a1f59"
      unitRef="usd">6571000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjctMS0xLTEtOTQ4NTM_a9ecc053-811c-40d5-aec3-8540db7688b6"
      unitRef="usd">12081000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjctMy0xLTEtOTQ4NTM_ab368171-b61a-40a2-899c-679844cf2b72"
      unitRef="usd">-3411000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjctNS0xLTEtOTQ4NTM_6f1e75f0-5ab8-4b01-8929-9eacd102515c"
      unitRef="usd">-4548000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjgtMS0xLTEtOTQ4NTM_97a27d4b-1329-405c-bb48-bd967d031e57"
      unitRef="usd">243406000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjgtMy0xLTEtOTQ4NTM_c8981a00-39c5-4bb1-be17-747ddf1c7f19"
      unitRef="usd">314065000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMjgtNS0xLTEtOTQ4NTM_3cf055a2-f853-4c35-a4b2-9e6317933e7e"
      unitRef="usd">242400000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzAtMS0xLTEtOTQ4NTM_28da750a-5a63-4544-b9e4-dedeb5436af6"
      unitRef="usd">233720000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzAtMy0xLTEtOTQ4NTM_38d0c16d-1e97-4a20-848c-e6ac31c8343c"
      unitRef="usd">668053000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzAtNS0xLTEtOTQ4NTM_0f13edd3-bcca-4d30-8f1d-434777b04bfd"
      unitRef="usd">922867000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzEtMS0xLTEtOTQ4NTM_3c2d9374-9023-43e4-8033-642dd7001e68"
      unitRef="usd">253983000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzEtMy0xLTEtOTQ4NTM_b7c039db-e653-4965-8e87-9b00ca804a62"
      unitRef="usd">430969000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzEtNS0xLTEtOTQ4NTM_d68a3e74-8660-4eee-8d6a-90a4df455fa9"
      unitRef="usd">1104605000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzItMS0xLTEtOTQ4NTM_e2480a30-7888-4673-905d-877caa08a68f"
      unitRef="usd">19667000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzItMy0xLTEtOTQ4NTM_d42c6a7e-3bb1-4c44-bcc4-b15fb11df04a"
      unitRef="usd">15455000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzItNS0xLTEtOTQ4NTM_69665f82-cdd8-4f0d-bfaa-6a431eede4ec"
      unitRef="usd">13303000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzMtMS0xLTEtOTQ4NTM_d94351af-79b5-4e90-9ee0-bc22869a2b54"
      unitRef="usd">5050000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzMtMy0xLTEtOTQ4NTM_d6cf86bb-1136-47e1-b91d-412bb8eda72d"
      unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzMtNS0xLTEtOTQ4NTM_6af7c076-0c02-4803-833b-bdbcf526a382"
      unitRef="usd">-1004000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzYtMS0xLTEtOTQ4NTM_01471475-5a20-4497-a7ee-b957e9a1d9c7"
      unitRef="usd">-4454000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzYtMy0xLTEtOTQ4NTM_94bc5571-7eea-4ba6-8a4b-b8778a237b00"
      unitRef="usd">-252539000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzYtNS0xLTEtOTQ4NTM_1b88060f-d85e-4ac2-840b-af8b9778a80d"
      unitRef="usd">169439000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzgtMS0xLTEtOTQ4NTM_48a8ab7b-0432-491d-add0-698488afefe4"
      unitRef="usd">9861000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzgtMy0xLTEtOTQ4NTM_6df3afcc-7703-497d-94e1-a74e912c5cec"
      unitRef="usd">63292000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzgtNS0xLTEtOTQ4NTM_c53f1504-1c1f-431a-b556-579ca4ddbde6"
      unitRef="usd">125715000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzktMS0xLTEtOTQ4NTM_6d66ff0e-c177-4c09-972d-b04dd6f22a0f"
      unitRef="usd">204314000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzktMy0xLTEtOTQ4NTM_4b5cb116-0d06-467b-8409-58dbb0ab2040"
      unitRef="usd">161652000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfMzktNS0xLTEtOTQ4NTM_c4715c54-d907-46c0-9abf-122eafeb2662"
      unitRef="usd">51036000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDAtMS0xLTEtOTQ4NTM_c717d48a-561f-4d55-b0cf-bedbf1af0ecc"
      unitRef="usd">45921000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDAtMy0xLTEtOTQ4NTM_60ec205d-8e24-4d2d-93c6-33df23d46135"
      unitRef="usd">43263000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDAtNS0xLTEtOTQ4NTM_df26a6e8-a914-4756-90b1-960d66871f72"
      unitRef="usd">390508000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDEtMS0xLTEtOTQ4NTM_2f44d564-8168-4118-bbed-13fe2636b0b1"
      unitRef="usd">0</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDEtMy0xLTEtOTQ4NTM_e4931442-beb2-4a44-a0fa-89a32c7087be"
      unitRef="usd">0</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDEtNS0xLTEtOTQ4NTM_0dc38e1d-1943-4aa3-b653-251df7f980bf"
      unitRef="usd">1039000</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDItMS0xLTEtOTQ4NTM_6e414ab5-150c-414c-b276-9cf4aa8d7675"
      unitRef="usd">-240374000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDItMy0xLTEtOTQ4NTM_a94bc0cd-069e-4e0d-b326-f11095969d3a"
      unitRef="usd">-141623000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDItNS0xLTEtOTQ4NTM_61d03a39-cc34-4ac3-8ec6-6cc62b9952a6"
      unitRef="usd">-316868000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDMtMS0xLTEtOTQ4NTM_a04503a4-5f9f-408c-9c6f-f5a847eea333"
      unitRef="usd">-3365000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDMtMy0xLTEtOTQ4NTM_fb082ab6-150c-42c0-90d8-4fde186f496a"
      unitRef="usd">-2815000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDMtNS0xLTEtOTQ4NTM_a5861d88-0052-470e-ad40-fc3b8281bad6"
      unitRef="usd">2671000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDQtMS0xLTEtOTQ4NTM_fe6a7ea9-f309-4878-a791-5091fec4a727"
      unitRef="usd">-4787000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDQtMy0xLTEtOTQ4NTM_39de9eaa-9176-4f7f-b848-7a1274fc7b8d"
      unitRef="usd">-82912000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDQtNS0xLTEtOTQ4NTM_07363258-8005-451a-95db-5c4357a0eb72"
      unitRef="usd">97642000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDUtMS0xLTEtOTQ4NTM_708131fe-c02f-4c8a-8830-124a8958a440"
      unitRef="usd">186161000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDUtMy0xLTEtOTQ4NTM_446e5b14-9c89-4f17-aaf0-53a63a144e41"
      unitRef="usd">269073000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i009bdd105744470f92f9842dbdccb264_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDUtNS0xLTEtOTQ4NTM_df8463a7-bce5-450a-bd30-12c44610a1f6"
      unitRef="usd">171431000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDYtMS0xLTEtOTQ4NTM_0bee8599-befc-47f3-b423-1b99532aa3d3"
      unitRef="usd">181374000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDYtMy0xLTEtOTQ4NTM_888b9eda-d3a5-4557-81fe-6522573ea3f4"
      unitRef="usd">186161000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84NS9mcmFnOmE0ZTUwZGMxNmE5NzRmZGI5NmEyYTk2MjY3ZmQ2ZTNjL3RhYmxlOjQxZmE2ZjgwNDM0ZTRmOTZiN2MwODEyMThmZDg0ZmZiL3RhYmxlcmFuZ2U6NDFmYTZmODA0MzRlNGY5NmI3YzA4MTIxOGZkODRmZmJfNDYtNS0xLTEtOTQ4NTM_282b07f7-4983-4b8e-a6b2-f2c7d07dc1f9"
      unitRef="usd">269073000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CommonStockSharesIssued
      contextRef="i8b9f9b0cca6842aea084f5a2e15e878e_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_93e8332f-e346-4d42-9c65-ed3b944a2ffc"
      unitRef="shares">172440000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i8b9f9b0cca6842aea084f5a2e15e878e_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi00LTEtMS05NDg1Mw_8c238d20-a6a9-44ed-b16e-bfb096999069"
      unitRef="usd">345000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i4c91f0f7ed80453ab08299b62282377f_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi02LTEtMS05NDg1Mw_c97cb2e7-e470-40bc-9969-ab5abb0f33c3"
      unitRef="usd">639372000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8902887729504b498026f2d195bc6171_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi04LTEtMS05NDg1Mw_6169e801-2b25-4c23-ad16-f418764ca498"
      unitRef="usd">753268000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ideca493651a94cfd9ac93831dacc0feb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0xMC0xLTEtOTQ4NTM_c17d1137-70fb-4f23-a7e1-63ca194bdde3"
      unitRef="usd">-37275000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i009bdd105744470f92f9842dbdccb264_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0xMi0xLTEtOTQ4NTM_0ea1292a-8e38-43e0-afd7-2f1eac0eb887"
      unitRef="usd">1355710000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy0yLTEtMS05NDg1Mw_c28a5892-e103-4305-ac2a-3c655f4dc74a"
      unitRef="shares">4565000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy00LTEtMS05NDg1Mw_c83e8545-157a-43a5-8b9d-a2a77a9361e9"
      unitRef="usd">9000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i6a9e2d8b39044a5da470cd71a20e96d9_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy02LTEtMS05NDg1Mw_cca903b8-a6c3-44ab-b15b-9b3449e7fdb8"
      unitRef="usd">125706000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMy0xMi0xLTEtOTQ4NTM_81c714e3-63b1-4274-9e65-98bb8df2185c"
      unitRef="usd">125715000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC0yLTEtMS05NDg1Mw_d3c6c976-675c-4760-8771-c8f30231d1f5"
      unitRef="shares">1215000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i180f3a4e5e2b48b8a67540874b1703f5_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC00LTEtMS05NDg1Mw_0900c253-e5ce-4de4-a15a-9a37583322c1"
      unitRef="usd">2000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC04LTEtMS05NDg1Mw_e1781030-2553-4860-9e16-6c6b065da4be"
      unitRef="usd">51034000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNC0xMi0xLTEtOTQ4NTM_658dcfab-c1ec-444f-80ea-df9e69f7fc3d"
      unitRef="usd">51036000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i6a9e2d8b39044a5da470cd71a20e96d9_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNS02LTEtMS05NDg1Mw_efe4d7c1-0c49-462a-b2de-2521352fa54b"
      unitRef="usd">42661000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNS0xMi0xLTEtOTQ4NTM_1ff7c79d-9c4a-448e-8eed-bf55e57af133"
      unitRef="usd">42661000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash
      contextRef="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNi04LTEtMS05NDg1Mw_5b48175e-97f5-4e8d-98fe-2766cdd4122b"
      unitRef="usd">390508000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNi0xMi0xLTEtOTQ4NTM_28ca452d-7f6a-4940-bd34-c2c488295012"
      unitRef="usd">390508000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="i3d174576e37f44bda8f8890053cacefb_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNy04LTEtMS05NDg1Mw_e4578776-6783-46d5-ba1b-d70fa9203883"
      unitRef="usd">176186000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfNy0xMi0xLTEtOTQ4NTM_c931eb69-9066-43f7-903c-3e7ebf6b9da9"
      unitRef="usd">176186000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTAtMTAtMS0xLTk0ODUz_3b51800e-b891-4df1-92c8-66477e88363c"
      unitRef="usd">6478000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTAtMTItMS0xLTk0ODUz_a90597d5-5afc-4575-9b26-6c08781b728f"
      unitRef="usd">6478000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTEtMTAtMS0xLTk0ODUz_cbbd87b9-82df-49b7-b81b-678d510a8f8a"
      unitRef="usd">4119000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTEtMTItMS0xLTk0ODUz_a3f6b42a-49af-4f62-9593-9528502fcc4e"
      unitRef="usd">4119000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTItMTAtMS0xLTk0ODUz_a3267118-2249-4592-a509-0f358617280a"
      unitRef="usd">1115000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTItMTItMS0xLTk0ODUz_d2c43f75-67dc-4210-9e5b-06ea6b19c8c3"
      unitRef="usd">1115000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i37aa967d9b614574b60bf8744e6aa32d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtMi0xLTEtOTQ4NTM_213b4127-0bd8-4345-9f51-9fa0eddc5f8c"
      unitRef="shares">175790000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i37aa967d9b614574b60bf8744e6aa32d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtNC0xLTEtOTQ4NTM_3f6dce0a-912d-4a43-8d8d-b4d8dfbea3da"
      unitRef="usd">352000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2da618064e304974bd1bb8c916268bb4_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtNi0xLTEtOTQ4NTM_3f68ab99-06eb-4b98-95db-86e24506d64c"
      unitRef="usd">807739000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia9112897e9444fd39d5b0856d18ea54f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtOC0xLTEtOTQ4NTM_44141063-b123-492c-85c8-a581fd8080fb"
      unitRef="usd">487912000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iad6f5aa41caf46e288e81930ea0abb6b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtMTAtMS0xLTk0ODUz_259e868d-5c6a-4383-893e-8a62af1847a4"
      unitRef="usd">-33801000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTMtMTItMS0xLTk0ODUz_a9e08639-b471-486e-b354-52e6e16a8768"
      unitRef="usd">1262202000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtMi0xLTEtOTQ4NTM_2dcef486-39fa-4184-ae29-f0e989e3ad1e"
      unitRef="shares">1703000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtNC0xLTEtOTQ4NTM_9cf9957e-2579-4fc2-a6df-7be336208291"
      unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ibae6b9b3c6ef413db976bc670eab9f6f_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtNi0xLTEtOTQ4NTM_0dc17539-4719-4215-a8e4-cc5a11371d30"
      unitRef="usd">63289000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTQtMTItMS0xLTk0ODUz_40a56e13-ba09-4ec8-859a-8c2f038c2ee8"
      unitRef="usd">63292000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtMi0xLTEtOTQ4NTM_711a0b7c-682a-4704-89a2-80c9eb159a7f"
      unitRef="shares">2012000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ifacea617d6e84e5d9492e2ab77053699_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtNC0xLTEtOTQ4NTM_7f1f3799-1d06-407b-ae56-c1ab3421c2e2"
      unitRef="usd">4000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtOC0xLTEtOTQ4NTM_f2432040-3f00-46ec-ac5b-68c7b726b9f1"
      unitRef="usd">161648000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTUtMTItMS0xLTk0ODUz_d10ea9c3-f2aa-4d37-9a5c-94b88bce98a1"
      unitRef="usd">161652000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ibae6b9b3c6ef413db976bc670eab9f6f_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTYtNi0xLTEtOTQ4NTM_36e9130b-4fe8-43a5-8b32-23e4223ce3ee"
      unitRef="usd">43774000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTYtMTItMS0xLTk0ODUz_984a48eb-5e5d-4f42-b7ac-44128989c68e"
      unitRef="usd">43774000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash
      contextRef="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTctOC0xLTEtOTQ4NTM_91f661b5-bb7a-4b2d-8a50-7003a6d3ed13"
      unitRef="usd">43263000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTctMTItMS0xLTk0ODUz_4ef49e15-7570-403b-b02b-b7e6cd30237e"
      unitRef="usd">43263000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="i80a95b6bd784485b9cd1ef530695d5e3_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTgtOC0xLTEtOTQ4NTM_152a482c-0023-46dc-9144-88a1dbfb82da"
      unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMTgtMTItMS0xLTk0ODUz_25be0881-70ce-42ca-9612-66ccf4355e68"
      unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjEtMTAtMS0xLTk0ODUz_711fa63c-a574-4338-8b53-f59b0f1e711a"
      unitRef="usd">-7152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjEtMTItMS0xLTk0ODUz_7e8a6691-ef27-4fce-83b3-dcd1c7457802"
      unitRef="usd">-7152000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjItMTAtMS0xLTk0ODUz_08ed6904-eacc-4bba-97b4-1d7c94aab617"
      unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjItMTItMS0xLTk0ODUz_fce74129-1aee-4417-974a-a8ffe10b8ce3"
      unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjMtMTAtMS0xLTk0ODUz_53ae7ec7-f3f5-4aec-b2d8-56830e79ab55"
      unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjMtMTItMS0xLTk0ODUz_c8fd35be-9b47-4f92-93ae-1cab4177f417"
      unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i286bf008d86648e2af5b7cab93deaa88_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtMi0xLTEtOTQ4NTM_772e9bd8-ed74-4b6b-a812-60733f137907"
      unitRef="shares">175481000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i286bf008d86648e2af5b7cab93deaa88_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtNC0xLTEtOTQ4NTM_92b30f76-aeff-404d-90a1-c79ecd59dd8e"
      unitRef="usd">351000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i07f860f3aace482bae8724cb64ea7ba0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtNi0xLTEtOTQ4NTM_126b5364-131b-4bcc-b404-711c6f3085c7"
      unitRef="usd">914802000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i425536f7ac9649f4b809e9472268e109_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtOC0xLTEtOTQ4NTM_10a69ecd-629c-4f7b-a6ee-cb4709fdf729"
      unitRef="usd">562882000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ifbb03b23bd884f0b97dde49ac3a7aba3_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtMTAtMS0xLTk0ODUz_4be77e32-0419-4700-aecd-3c0b7313946c"
      unitRef="usd">-47942000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjQtMTItMS0xLTk0ODUz_549349d8-c4de-4d5f-91ce-ea3a7813142a"
      unitRef="usd">1430093000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtMi0xLTEtOTQ4NTM_029aabbf-03f7-4fc5-9123-3183e7af8675"
      unitRef="shares">514000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtNC0xLTEtOTQ4NTM_15de596d-8a6a-4cf2-b310-a05bb8da8313"
      unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ie1e2221b2ffb438484820462f94b5dab_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtNi0xLTEtOTQ4NTM_55df1067-5285-4082-ba3b-1b38523f1241"
      unitRef="usd">9860000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjUtMTItMS0xLTk0ODUz_9438e04c-506d-4c4b-811f-daca911dc41a"
      unitRef="usd">9861000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtMi0xLTEtOTQ4NTM_3d695471-fff6-4222-ad51-3a4b4752d0be"
      unitRef="shares">3364000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i813c7f87d8fa41a98207835ec0c89412_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtNC0xLTEtOTQ4NTM_4c149b59-5d38-44a9-9889-b142c7322908"
      unitRef="usd">7000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i295a746960af462daa557f4bd0a773d4_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtOC0xLTEtOTQ4NTM_165a0122-8088-42f8-a06f-f8b2d8400f48"
      unitRef="usd">204307000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjYtMTItMS0xLTk0ODUz_3a16deac-05ca-4588-b4ec-302af733fa28"
      unitRef="usd">204314000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ie1e2221b2ffb438484820462f94b5dab_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjctNi0xLTEtOTQ4NTM_74280473-af16-468d-9b02-5de03bfc1e4b"
      unitRef="usd">54505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjctMTItMS0xLTk0ODUz_7cdcbcc2-bf73-4358-bc76-4bea5ca00fb0"
      unitRef="usd">54505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash
      contextRef="i295a746960af462daa557f4bd0a773d4_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjgtOC0xLTEtOTQ4NTM_434cf64a-9011-409b-bc3d-2b1121a9a723"
      unitRef="usd">45921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjgtMTItMS0xLTk0ODUz_9c3511b3-5f36-4168-a2cc-eaf8264f2251"
      unitRef="usd">45921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss
      contextRef="i295a746960af462daa557f4bd0a773d4_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjktOC0xLTEtOTQ4NTM_4b950949-71af-48bf-a4bd-8cabbb519148"
      unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMjktMTItMS0xLTk0ODUz_0fe1004b-429d-4a5e-ba74-efab91ed591b"
      unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzItMTAtMS0xLTk0ODUz_2f146e76-b7e1-45ee-8346-1cdabffe0c01"
      unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzItMTAtMS0xLTk0ODUz_f411238b-d556-48ef-87d8-0c74344861cd"
      unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzItMTItMS0xLTk0ODUz_2a37b04c-f8d7-43c0-b0da-a7425e34d60d"
      unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzQtMTAtMS0xLTk0ODUz_5134a53b-b4bd-45bd-9005-2f3b45101be3"
      unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzQtMTAtMS0xLTk0ODUz_7df3b38b-9eed-451c-91c9-dad594f394f1"
      unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzQtMTItMS0xLTk0ODUz_d4d476e0-bb6e-450b-9785-7b1a4ee39c0e"
      unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzUtMTAtMS0xLTk0ODUz_1daa9da4-dff6-4092-bb9f-bba1fdb4e221"
      unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzUtMTAtMS0xLTk0ODUz_5e2fa5bb-1801-41b6-8319-00845adbd766"
      unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzUtMTItMS0xLTk0ODUz_94387f65-b263-46f7-b67a-8acff06cfb69"
      unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="i2fb26adbfc8148299f6f7d6ee49b7fe2_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtMi0xLTEtOTQ4NTM_43ed0889-f665-4185-b30f-0992a4154932"
      unitRef="shares">172631000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="i2fb26adbfc8148299f6f7d6ee49b7fe2_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtNC0xLTEtOTQ4NTM_b34fd13d-34c3-4fa5-95f9-c918aa510135"
      unitRef="usd">345000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i1178be5f70604688adcb636c8cbedf0c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtNi0xLTEtOTQ4NTM_60c6da3b-a6c4-4ab4-858f-60c1a49e6044"
      unitRef="usd">979167000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i822bc252196244cca8220d4e49c25314_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtOC0xLTEtOTQ4NTM_c269171f-8fc1-4570-acfe-beb4a303c099"
      unitRef="usd">528179000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2897666478444bcd81e42d318b14859a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtMTAtMS0xLTk0ODUz_ea2184cb-ace4-4dd4-a716-00df05679959"
      unitRef="usd">-69297000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMzYtMTItMS0xLTk0ODUz_eb6038a0-4c73-4635-83e0-d36db67078ec"
      unitRef="usd">1438394000</us-gaap:StockholdersEquity>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMTA_cdb53dd6-c3af-4eea-8cca-6d7da80a4255">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, investments, stock-based compensation, 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. It is the Company&#x2019;s policy to invest in investment-grade debt securities with effective maturities that do not exceed ten 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;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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and &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;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: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 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: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; useful lives are 39 years, building improvements&#x2019; useful lives are 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131"&gt;two&lt;/span&gt; to ten years. 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%;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 12 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, through year ended December 31, 2022, was estimated using the three-month London Interbank Offered Rate (LIBOR) 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 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 would proceed 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 &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;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 distribution networks range from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06"&gt;eleven&lt;/span&gt; to twelve years, completed technologies from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5"&gt;five&lt;/span&gt; to eight years, customer relationships from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6"&gt;five&lt;/span&gt; to eight years, non-compete agreements from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7"&gt;three&lt;/span&gt; to seven years, and trademarks two 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2"&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. The Company recognizes all derivative instruments as either current assets or current liabilities at fair value on the Consolidated Balance Sheets. 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 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. These solutions are provided to customers in a variety of industries, including the consumer electronics and logistics industries. &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 typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. 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 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 objectively 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&#x2019;s designated site, the significant risks and rewards of ownership transfer to the customer &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;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 objectively 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 revenue recognition criteria, 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 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 a contract 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,257,000 in 2022, $1,965,000 in 2021, and $1,443,000 in 2020.&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 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, or 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;Only 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 not classified as current. 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.&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 Tax Cuts and Jobs Act of 2017 imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax. In 2019, the Company elected to account for the impact of the GILTI minimum tax in deferred taxes, a change from the Company&#x2019;s initial election made in 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. The change is considered preferable, as it appropriately matches the Company&#x2019;s current and deferred income tax implications.&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 $48,050,000 and $43,665,000, as of December 31, 2022 and December 31, 2021, respectively; net unrealized losses on available-for-sale investments of $19,976,000 and $3,006,000 as of December 31, 2022 and December 31, 2021, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,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;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%"&gt;Amounts reclassified from accumulated other comprehensive loss, net of tax, to investment income on the Consolidated Statements of Operations were net realized gains (losses) of $(182,000), $236,000, and $4,119,000 for 2022, 2021, and 2020, 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%;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 safety and liquidity. The Company has historically not experienced any significant realized losses on its debt securities.&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 two large customers that each represented 11% of total revenue in 2022. These two customers combined represented 17% of total accounts receivable as of December 31, 2022. 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. Our contract manufacturer's 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. On June 7, 2022, this contract manufacturer suffered a fire at its Indonesian plant destroying a large portion of the Company's component inventories. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,000. Refer to Note 22 for further information on this event and the charges recorded in "Loss from Fire" 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;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 Acquisitions&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 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 primarily establishes fair value using the income approach based on a discounted cash flow model. The income approach requires the use of many assumptions and estimates including future revenues and expenses, as well as discount factors. Contingent consideration liabilities are reported at their estimated fair values based on probability-adjusted present values of the consideration expected to be paid, using significant inputs and estimates. Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain milestones and discount rates consistent with the level of risk of achievement. The fair values of these contingent consideration liabilities are remeasured &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 reporting period with changes in fair value included in "Other income (expense)" on the Consolidated Statements of Operations. 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. &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;Restructuring Charges&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;One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#x201c;communication date&#x201d;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. &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;Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.&lt;/span&gt;&lt;/div&gt;Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.</us-gaap:SignificantAccountingPoliciesTextBlock>
    <cgnx:NatureOfOperationsPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNTg_b9ba57f2-396c-4745-a3da-a1b098428539">&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNzQ_8c143141-1a02-4849-89e3-5835bc68721a">&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, investments, stock-based compensation, and income taxes.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNTg_2b2ef511-9874-4e37-b937-36f535d9a5ff">&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyODE_9c669091-cd80-4eb7-8258-83a561f628ba">&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNjg_7e619e98-4990-41d7-8a06-0133610c00a5">&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:CashAndCashEquivalentsPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxOTg_4717c1c8-074e-4d25-b02c-e8e6406f2cb8">&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. It is the Company&#x2019;s policy to invest in investment-grade debt securities with effective maturities that do not exceed ten 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;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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and &lt;/span&gt;&lt;/div&gt;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.</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:InvestmentPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxOTg_b38d0bc8-e5ff-436c-b7d0-5624ed95523f">&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. It is the Company&#x2019;s policy to invest in investment-grade debt securities with effective maturities that do not exceed ten 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;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 be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and &lt;/span&gt;&lt;/div&gt;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.</us-gaap:InvestmentPolicyTextBlock>
    <cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzUwMw_e16439b6-5cc1-4aa3-8cc2-ce0ac73934cd">P10Y</cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMjA_2f5fbf0c-22a0-425e-84b9-04b4afb25b39">&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNDU_e719863d-b5f9-4a5e-ab0f-c4d403d0c2c2">&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: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 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;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxNTI_6e8a38ea-1d85-4b25-bdd4-82ef867faf81">&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; useful lives are 39 years, building improvements&#x2019; useful lives are 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA1OQ_fdc2aa80-42fb-42e4-9383-677edb28f131"&gt;two&lt;/span&gt; to ten years. 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;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ifa7f1aaa09574c4d9c4e019d191a823f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNzg4Nw_c19cb467-cd3d-4e75-98d9-5abeb6289681">P39Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="iee589a12fbf244359633a5838d775a60_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNzkzMQ_d68d338a-b21c-4cc8-8848-ff889bd1a2fc">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ifb77d360cfbf4d1cbc02bb15f3155617_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfODA2NQ_3b02ef65-c384-4514-91eb-d21d1c9f256e">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:InternalUseSoftwarePolicy
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNzg_189a005d-7539-4fa7-89e8-55f8015df3c7">&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;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.</us-gaap:InternalUseSoftwarePolicy>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMzI_e098cd12-59af-4389-8de7-1b0269ca1f4f">&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 12 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, through year ended December 31, 2022, was estimated using the three-month London Interbank Offered Rate (LIBOR) 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMzI_04d4741a-13a0-49a1-81c6-d39c15431d6a">&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 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 would proceed 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 &lt;/span&gt;&lt;/div&gt;similar businesses, to support the conclusions based on the income approach.</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMzM_3b1cdf27-a08d-4563-b8f4-8c4808eab589">&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 distribution networks range from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0MzU_6c0697df-8082-47e2-bcfe-08ee26be0d06"&gt;eleven&lt;/span&gt; to twelve years, completed technologies from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NzM_493f745c-7a0e-4af2-bab8-6549f1b2c1b5"&gt;five&lt;/span&gt; to eight years, customer relationships from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTE_85412e23-7837-43de-9ff9-c9d3e815a4a6"&gt;five&lt;/span&gt; to eight years, non-compete agreements from &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NDk_8b43e202-c4c0-4e70-bab6-d2d43b0130f7"&gt;three&lt;/span&gt; to seven years, and trademarks two 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. For indefinite-lived intangible assets that are not subject to amortization, the fair value of the asset is measured and an impairment charge is recorded 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="i26a15cd120ad42108ce81ed3c8d47990_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0NDE_62c28823-4463-4f46-969c-413ff52dbdf8">P12Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i015d343516f34dd589537e0a5a7019d2_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU0Nzk_07c9dcd7-697d-4e20-bd29-8652a34ab053">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i01ed603468da4f2c954af228989e2960_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1MTc_ad1c8d42-e265-4877-b330-deac9dd629d5">P8Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i565941fba8af4a21ac95304dd4e544b6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NTU_b78cb497-aa6a-4202-beb3-1835b57e7876">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="id0ea9f117fff4c63a23c02536f451fdd_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTU1NzQ_586216d2-6242-4ee7-a9b1-a16f4fb0dff6">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:StandardProductWarrantyPolicy
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNjI_f45facd2-3846-418b-9f7f-be740c8af1df">&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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODE_46bdcfcc-6079-4b12-9f0f-aead062dfaf2"&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="i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMTY4ODc_d41c7e3a-043c-4954-9ba9-ef64699bcbe6">P3Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:CommitmentsAndContingenciesPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxODI_2db44831-2045-4773-b3a0-84750d18acbd">&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyODg_05dec32d-422c-4796-a453-052346a501a0">Derivative InstrumentsDerivative 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. The Company recognizes all derivative instruments as either current assets or current liabilities at fair value on the Consolidated Balance Sheets. 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyODk_dc4c87dc-a38b-4963-a456-fbcfc4fa2f0e">&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 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. These solutions are provided to customers in a variety of industries, including the consumer electronics and logistics industries. &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 typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. 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 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 objectively 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&#x2019;s designated site, the significant risks and rewards of ownership transfer to the customer &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;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 objectively 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 revenue recognition criteria, 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 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 a contract 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="i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjU4MzU_ffb96403-642b-4168-a2dd-99783b9c75bd">P30D</cgnx:RevenuePaymentTerms>
    <cgnx:RevenuePaymentTerms
      contextRef="i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjU4NDE_b3a7349f-c055-42e2-99fa-9e9d793d4e0b">P90D</cgnx:RevenuePaymentTerms>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMzE_c0818c96-2f0b-49ed-9072-a194b019960a">Research and DevelopmentResearch 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNjk_464e5bdf-6c8d-447f-87de-947d4e1ddbec">&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,257,000 in 2022, $1,965,000 in 2021, and $1,443,000 in 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjc5Mjc_69acd33c-2069-4b30-83a2-77981a2096ac"
      unitRef="usd">1257000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjc5Mzc_e778a176-4435-44c1-90e6-2be1306681a7"
      unitRef="usd">1965000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMjc5NTE_be833d53-8687-44d2-89b2-7c9cb3dd0e7f"
      unitRef="usd">1443000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxODY_7b2c4d48-1aed-4233-80e3-7ce6ffa89bca">&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 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;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.</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMTQ_dcb21ac2-13aa-4111-8beb-fca46682717e">&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, or 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;Only 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 not classified as current. 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.&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 Tax Cuts and Jobs Act of 2017 imposed a minimum tax on foreign earnings related to intangible assets, known as the Global Intangible Low-Taxed Income (GILTI) tax. In 2019, the Company elected to account for the impact of the GILTI minimum tax in deferred taxes, a change from the Company&#x2019;s initial election made in 2018 whereby the GILTI minimum tax was included in income tax expense as incurred on an annual basis. The change is considered preferable, as it appropriately matches the Company&#x2019;s current and deferred income tax implications.&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMjQ_ed42986d-9389-49b5-b02d-82bb09cd8499">&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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNDc_18b73ddf-d618-4dad-b96f-8429bb5b187a">&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 $48,050,000 and $43,665,000, as of December 31, 2022 and December 31, 2021, respectively; net unrealized losses on available-for-sale investments of $19,976,000 and $3,006,000 as of December 31, 2022 and December 31, 2021, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,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;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%"&gt;Amounts reclassified from accumulated other comprehensive loss, net of tax, to investment income on the Consolidated Statements of Operations were net realized gains (losses) of $(182,000), $236,000, and $4,119,000 for 2022, 2021, and 2020, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQyNTk_6d292f69-88fe-4bcc-ab02-eee6bd1110f1"
      unitRef="usd">48050000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQyNjY_b96e78a6-3c98-43b3-aa82-c071af7471a6"
      unitRef="usd">43665000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQzODY_a396870a-5049-4415-b346-9cca7e0bb139"
      unitRef="usd">19976000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNTQ5NzU1ODU2Nzgy_33c4e674-5e97-46ac-ab69-fbbf90ba3731"
      unitRef="usd">3006000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ1ODA_bb5c5f6e-9411-400b-847e-9b8f9a7d3e06"
      unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="iccdf92b0bfcf417f857a99acc6360443_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ3NzA_9e52c80d-cc3f-4591-9ae1-b591b88d9a2e"
      unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="ia9e76ca588ae4ddc8d19ada1e323b9be_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ3NzQ_8f3943ca-540f-40ac-9fea-7ce3ce734581"
      unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax
      contextRef="i9f410feedfab43f9bebd1d74311b8ea1_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfMzQ3ODI_435854fe-b958-45a4-aec2-97aa94570174"
      unitRef="usd">4119000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyMzA_d02eca70-08d0-42c5-8741-c60739a30406">&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 safety and liquidity. The Company has historically not experienced any significant realized losses on its debt securities.&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 two large customers that each represented 11% of total revenue in 2022. These two customers combined represented 17% of total accounts receivable as of December 31, 2022. 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. Our contract manufacturer's 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. On June 7, 2022, this contract manufacturer suffered a fire at its Indonesian plant destroying a large portion of the Company's component inventories. In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses from inventories and other assets of $48,339,000, offset by insurance recoveries of $27,560,000. Refer to Note 22 for further information on this event and the charges recorded in "Loss from Fire" 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;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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIxMzc_81556344-a4ab-44c5-86a0-574efa4692f4">&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 Acquisitions&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 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 primarily establishes fair value using the income approach based on a discounted cash flow model. The income approach requires the use of many assumptions and estimates including future revenues and expenses, as well as discount factors. Contingent consideration liabilities are reported at their estimated fair values based on probability-adjusted present values of the consideration expected to be paid, using significant inputs and estimates. Key assumptions used in these estimates include probability assessments with respect to the likelihood of achieving certain milestones and discount rates consistent with the level of risk of achievement. The fair values of these contingent consideration liabilities are remeasured &lt;/span&gt;&lt;/div&gt;each reporting period with changes in fair value included in "Other income (expense)" on the Consolidated Statements of Operations. 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:CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF85Ny9mcmFnOjVmMzk0YTc5NTAzNDQxZjc4MzllNjJlM2VhNzk4ZWYwL3RleHRyZWdpb246NWYzOTRhNzk1MDM0NDFmNzgzOWU2MmUzZWE3OThlZjBfNDIyNjQ_8ec456a6-a54e-4639-9b32-85971092dd2b">&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;Restructuring Charges&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;One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#x201c;communication date&#x201d;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. &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;Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.&lt;/span&gt;&lt;/div&gt;Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.</us-gaap:CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDMvZnJhZzo2NzJiYTg5M2U4YTM0NTQ0OGNhNWE1NTEyMjc5OGYyYi90ZXh0cmVnaW9uOjY3MmJhODkzZThhMzQ1NDQ4Y2E1YTU1MTIyNzk4ZjJiXzM4MzI_2c5ee63d-5faa-4c00-8e80-caa49e992ff2">New Pronouncements&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;Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"&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 these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.&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;Accounting Standards Update (ASU) 2021-08, "Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers"&lt;/span&gt;&lt;/div&gt;The amendments in this ASU primarily address the accounting for contract assets and contract liabilities related to revenue contracts with customers in a business combination. The ASU clarifies that an acquirer should account for the related revenue contracts in accordance with Accounting Standards Codification 606 as if the acquirer had originated the contracts. The amendments in this ASU are effective for fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, although early adoption is permitted. The amendments in the ASU should be applied prospectively to business combinations occurring on or after the effective date of the amendments. Management adopted this ASU on December 1, 2022 and the adoption did not have a material impact on the Company's financial statements and disclosures.</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDMvZnJhZzo2NzJiYTg5M2U4YTM0NTQ0OGNhNWE1NTEyMjc5OGYyYi90ZXh0cmVnaW9uOjY3MmJhODkzZThhMzQ1NDQ4Y2E1YTU1MTIyNzk4ZjJiXzM4Mzg_6faad50a-b8f9-4ff8-8179-26a82725244b">New Pronouncements&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;Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"&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 these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.&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;Accounting Standards Update (ASU) 2021-08, "Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers"&lt;/span&gt;&lt;/div&gt;The amendments in this ASU primarily address the accounting for contract assets and contract liabilities related to revenue contracts with customers in a business combination. The ASU clarifies that an acquirer should account for the related revenue contracts in accordance with Accounting Standards Codification 606 as if the acquirer had originated the contracts. The amendments in this ASU are effective for fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, although early adoption is permitted. The amendments in the ASU should be applied prospectively to business combinations occurring on or after the effective date of the amendments. Management adopted this ASU on December 1, 2022 and the adoption did not have a material impact on the Company's financial statements and disclosures.</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzM4NTY_19af2f68-7107-44c5-a04e-252cfa8d6369">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, 2022 (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 style="width:53.578%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.519%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.519%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.524%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;/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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;538,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 bills&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,546&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;Municipal 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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: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's contingent consideration liabilities are reported at fair value based on probability-adjusted present values of the consideration expected to be paid using significant inputs that are not observable in the market, and are therefore classified as Level 3. The fair value of the contingent consideration liability related to the Company's acquisition of GVi Ventures, Inc. in 2017 was written down to zero in 2019 resulting from a lower level of revenue in the Americas' automotive industry. The balance remained at zero through the remainder of the five-year assessment period which concluded during the second quarter 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%;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 adverse impact of the COVID-19 pandemic on our business in 2020 triggered a review of long-lived assets for potential impairment as of May 26, 2020, which resulted in operating lease asset impairment charges of $3,427,000 (refer to Notes 7 and 23) that were included in "Restructuring charges" on the Consolidated Statements of Operations, and intangible asset impairment charges of $19,571,000 (refer to Note 9) in the second quarter of 2020. These fair value measurements were based on the present values of future cash flows using significant inputs that are not observable in the market, and were therefore classified as Level 3. The Company did not record impairment charges related to non-financial assets in 2022 or 2021.</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzM4NjQ_54e45728-b747-4cb1-97f7-a78515f3404f">&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, 2022 (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 style="width:53.578%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.519%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.519%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.524%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;/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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;538,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 bills&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,546&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;Municipal 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzMtMS0xLTEtOTQ4NTM_04b844d8-ebd9-4c26-aaa5-42ff3ac3837e"
      unitRef="usd">415000</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzMtMy0xLTEtOTQ4NTM_d55d4bc4-0bbb-4151-8468-9b7a660dff18"
      unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzMtNS0xLTEtOTQ4NTM_7a1960db-873d-49ce-a503-15ddfe87cd4b"
      unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzQtMS0xLTEtOTQ4NTM_186b2a67-5b07-403f-9ce8-46e03c6d7317"
      unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzQtMy0xLTEtOTQ4NTM_25ab7a01-dd41-49c5-af06-855e80926dc3"
      unitRef="usd">538495000</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzQtNS0xLTEtOTQ4NTM_82bbf759-45bf-4d51-9cc7-a44bb94b5fda"
      unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzUtMS0xLTEtOTQ4NTM_80a6db77-0564-4e28-b6b1-a256942a235a"
      unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzUtMy0xLTEtOTQ4NTM_04b680cd-4f7a-40b8-b5f9-7f2c1e32494e"
      unitRef="usd">60429000</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzUtNS0xLTEtOTQ4NTM_03634a44-b61e-48c2-afed-f3eeac0df7c0"
      unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzYtMS0xLTEtOTQ4NTM_8ba383f1-cbf4-45db-8835-6012c6321021"
      unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzYtMy0xLTEtOTQ4NTM_956e0c63-8de3-4db2-8a0f-90612a3ada86"
      unitRef="usd">55546000</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzYtNS0xLTEtOTQ4NTM_d62a4564-63c7-4d96-a7a4-e60ebf46791d"
      unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:AgencyBondsFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzgtMS0xLTEtOTQ4NTM_4cf52d57-a1bb-4cc0-a65d-24b471bc81b5"
      unitRef="usd">0</cgnx:AgencyBondsFairValueDisclosure>
    <cgnx:AgencyBondsFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzgtMy0xLTEtOTQ4NTM_ce5c6c60-1ca8-4862-9c7b-5b4aea6fd20c"
      unitRef="usd">15858000</cgnx:AgencyBondsFairValueDisclosure>
    <cgnx:AgencyBondsFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzgtNS0xLTEtOTQ4NTM_93813f78-f85c-4cb3-ba16-7c55b48629ce"
      unitRef="usd">0</cgnx:AgencyBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMS0xLTEtMTAwNjUz_23399ced-8569-4009-8583-96978ebfb95f"
      unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMy0xLTEtMTAwNjUz_3f0e363d-3d3c-40f2-9a44-e5ecbfa05cd1"
      unitRef="usd">1924000</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktNS0xLTEtMTAwNjUz_f1accbbd-a35c-4313-be48-0095d02371c6"
      unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:MunicipalBondsFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMS0xLTEtOTQ4NTM_55a32aeb-5a50-4ca6-8293-356d29c53a20"
      unitRef="usd">0</cgnx:MunicipalBondsFairValueDisclosure>
    <cgnx:MunicipalBondsFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktMy0xLTEtOTQ4NTM_8b692733-4b95-4059-9d6e-c0ff204a4242"
      unitRef="usd">624000</cgnx:MunicipalBondsFairValueDisclosure>
    <cgnx:MunicipalBondsFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzktNS0xLTEtOTQ4NTM_13571288-9ac8-4293-9829-8816c8f8a00e"
      unitRef="usd">0</cgnx:MunicipalBondsFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzEzLTEtMS0xLTk0ODUz_ae129f67-c286-4201-93eb-781beed16668"
      unitRef="usd">0</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzEzLTMtMS0xLTk0ODUz_e5647164-f3c9-48bd-a9aa-b3cfb91a6557"
      unitRef="usd">27000</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzEzLTUtMS0xLTk0ODUz_0dce9017-d58c-4fe0-b572-b5930984909b"
      unitRef="usd">0</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure
      contextRef="i4e8edbf45a9b475787b03e4b32fb6100_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzE2LTEtMS0xLTk0ODUz_1588ac95-b264-4028-bdfe-fe8e56340bf7"
      unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure
      contextRef="i869877af7504471eb26d50c3caf7a346_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzE2LTMtMS0xLTk0ODUz_ae9491a0-afbe-4b55-9d96-a4c80a8e08db"
      unitRef="usd">479000</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure
      contextRef="i64aa48a0b0ae445298efb767e3fda50c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90YWJsZTpkOTczOWMxMTVmOTk0OTU5YjJiOGUwNTMzYzk3MDU4My90YWJsZXJhbmdlOmQ5NzM5YzExNWY5OTQ5NTliMmI4ZTA1MzNjOTcwNTgzXzE2LTUtMS0xLTk0ODUz_9aa45ee5-710b-4cca-9a89-676b8de9140a"
      unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="if60370d1989c45a9a5f65c6069b83bf0_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzIzNzE_b9af46fb-771f-49a4-a39e-e2c59b6142f7"
      unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
      contextRef="i3528e37801244544af9d193380101650_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzI0ODc_d944bcb9-5c4f-40c3-b4ab-6775336d2374"
      unitRef="usd">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue>
    <us-gaap:OperatingLeaseImpairmentLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzMzNTE_c0e98a8f-46b9-4d55-86dc-91fa8a1ffa67"
      unitRef="usd">3427000</us-gaap:OperatingLeaseImpairmentLoss>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMDkvZnJhZzoyZTc1YmYyNTQyYTA0NmQ5YjYzNzYwZGYwODY5NGEzOS90ZXh0cmVnaW9uOjJlNzViZjI1NDJhMDQ2ZDliNjM3NjBkZjA4Njk0YTM5XzM1MTU_322f0d0b-b1b1-439b-9aed-c0846d695270"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzEyNjQ0MzgzNzIzMTE1_7dd5e8eb-9997-4126-98dd-9c72ca6642cf">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 style="width:65.274%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.274%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.422%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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;180,959&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;185,624&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;415&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;181,374&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;186,161&#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;/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;164,055&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;26,890&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Agency 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;15,858&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,802&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 bills&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;11,332&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,998&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;218,759&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;137,455&#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;/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;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;374,440&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;481,218&#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;/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 bills&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;44,214&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,753&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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:700;line-height:100%"&gt;33,539&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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;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:700;line-height:100%"&gt;1,924&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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: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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;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;/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-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;454,117&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;583,748&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;854,250&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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:400;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:400;line-height:100%"&gt;907,364&#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;/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 cash balance included foreign bank balances totaling $160,611,000 and $142,009,000 as of December&#160;31, 2022 and 2021, 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;Corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; treasury bills consist of debt securities issued by the U.S. government; municipal bonds consist of debt securities issued by state and local government entities; and sovereign bonds consist of direct debt issued by foreign governments. All of the Company's securities as of December 31, 2022 and 2021 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;Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $3,620,000 and $3,037,000 as of December 31, 2022 and 2021, 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, 2022 (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 style="width:36.583%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.709%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.005%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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 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;/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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&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;167,558&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,503)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,055&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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;27,607&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(717)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Agency 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;16,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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 bills&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,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(270)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="display:none"/&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;Municipal 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;635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&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;394,576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;374,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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 bills&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;44,333&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(198)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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;35,144&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,708)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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;2,095&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;699,693&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;743&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(27,560)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;672,876&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="display:none"/&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, 2022 (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 style="width:34.289%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.885%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.328%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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 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 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 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 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 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 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;285,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,591)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;187,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(14,609)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;472,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(24,200)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;47,582&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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 bills&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,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(465)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(468)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Agency 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;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(67)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(104)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;382,732&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(12,718)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;190,707&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(14,842)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;573,439&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(27,560)&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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&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, 2022, 2021 or 2020. Management currently intends to hold these securities to full value recovery at maturity.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 Company recorded gross realized gains on the sale of debt securities totaling $133,000 in 2022, $246,000 in 2021, and $4,283,000 in 2020, and gross realized losses on the sale of debt securities totaling $315,000 in 2022, $10,000 in 2021, and $164,000 in 2020. 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, 2022 (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 style="width:25.508%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.157%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.864%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.256%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.581%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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 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 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 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 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;164,055&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;167,661&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;94,417&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;63,101&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;48,796&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;465&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;538,495&#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;/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;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;26,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 bills&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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,384&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,758&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,546&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Agency 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;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;218,759&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;183,812&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;114,345&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;89,056&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;66,439&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;465&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;672,876&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIzOTQ_ccc18b5f-a2a8-4771-ad82-f5998505da69">&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 style="width:65.274%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.274%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.422%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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;180,959&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;185,624&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;415&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;537&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;181,374&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;186,161&#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;/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;164,055&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;26,890&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Agency 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;15,858&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,802&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 bills&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;11,332&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,912&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,998&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;218,759&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;137,455&#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;/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;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;374,440&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;481,218&#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;/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 bills&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;44,214&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,753&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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:700;line-height:100%"&gt;33,539&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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;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:700;line-height:100%"&gt;1,924&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Agency 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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: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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;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;/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-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;454,117&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;583,748&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;854,250&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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:400;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:400;line-height:100%"&gt;907,364&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock>
    <us-gaap:Cash
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzItMS0xLTEtOTQ4NTM_e022287d-6f79-4d9c-b8d9-9dad54a3c74e"
      unitRef="usd">180959000</us-gaap:Cash>
    <us-gaap:Cash
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzItMy0xLTEtOTQ4NTM_f882422f-db5c-41de-8d00-5ecf168dc71b"
      unitRef="usd">185624000</us-gaap:Cash>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzQtMS0xLTEtOTQ4NTM_616ccf62-5717-4694-b379-59d8700d0b38"
      unitRef="usd">415000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzQtMy0xLTEtOTQ4NTM_c20627cc-ea43-451b-b6e0-9dbf6aeafeeb"
      unitRef="usd">537000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzUtMS0xLTEtOTQ4NTM_158342c8-7433-4b29-b35e-8f0ef770ea87"
      unitRef="usd">181374000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzUtMy0xLTEtOTQ4NTM_5c9cb2d5-9864-40f6-b44c-0edd4e76ea22"
      unitRef="usd">186161000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzYtMS0xLTEtOTQ4NTM_dd6d5083-7cec-46ac-88d1-54a7ed7c9338"
      unitRef="usd">164055000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i60011d84efde475c8588eb23faee3402_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzYtMy0xLTEtOTQ4NTM_7743eec7-3f5f-4473-b582-3c9b095c173d"
      unitRef="usd">73088000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzctMS0xLTEtOTQ4NTM_40da1f10-8cc3-41e9-b16b-f0d23cfd9276"
      unitRef="usd">26890000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i9634a0ff62a64c7c97fb012d5f04f764_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzctMy0xLTEtOTQ4NTM_a22e2b4f-8f3c-4382-b299-9954205e8676"
      unitRef="usd">37655000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMS0xLTEtMTAwNjYx_78e10330-8c68-4238-bf1b-b900ccd9eb54"
      unitRef="usd">15858000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ie688266910e6494fa1c1ad7173ab67cb_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMy0xLTEtMTAwNjYx_ee5613fe-bea9-4dc3-b23c-5b124cd0da52"
      unitRef="usd">2802000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i74c78e40a8d843199a11606ff8e39c0f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMS0xLTEtOTQ4NTM_de0bd3b4-ba30-433f-9b49-61d101138698"
      unitRef="usd">11332000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ib992952d9d974d5ea61d843c4d3dfe6b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzgtMy0xLTEtOTQ4NTM_a5bb88e7-500b-46df-ae9a-7957bdd1d867"
      unitRef="usd">18912000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzktMS0xLTEtOTQ4NTM_cd75c843-cfe2-46bf-adb7-6e1ba342126b"
      unitRef="usd">624000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i749ddfecc38f475192a0e44188c51783_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzktMy0xLTEtOTQ4NTM_c5bafbb7-2944-4e0f-b6cf-909bb739b17c"
      unitRef="usd">4998000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE1LTEtMS0xLTk0ODUz_a8bf4e9d-986e-4864-a431-817214d565bf"
      unitRef="usd">218759000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE1LTMtMS0xLTk0ODUz_76e2adf0-7b60-414a-857f-d24c4d2c1479"
      unitRef="usd">137455000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE2LTEtMS0xLTk0ODUz_bbbe166b-3819-4dca-906e-496858d4dae9"
      unitRef="usd">374440000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i60011d84efde475c8588eb23faee3402_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE2LTMtMS0xLTk0ODUz_84e1258c-2d7a-4b25-b921-e7798dda758e"
      unitRef="usd">481218000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i74c78e40a8d843199a11606ff8e39c0f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTEtMS0xLTEwMDY4MA_916af473-e115-41ad-a877-eaae0a99db91"
      unitRef="usd">44214000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="ib992952d9d974d5ea61d843c4d3dfe6b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTMtMS0xLTEwMDY4MA_ae3e99f6-3cb2-4c64-a01c-55dad9ee2732"
      unitRef="usd">39753000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTEtMS0xLTk0ODUz_194a39c8-b713-4552-b0c9-1f1899e98221"
      unitRef="usd">33539000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i9634a0ff62a64c7c97fb012d5f04f764_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE3LTMtMS0xLTk0ODUz_8d5db0b4-47fa-447c-905e-7d3125980c07"
      unitRef="usd">43940000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIwLTEtMS0xLTEwMDY4Mw_c21b8111-8eb4-4569-8943-e5f77830188a"
      unitRef="usd">1924000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="if544a4fb4bc449acb2b6985e0160dd9b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIwLTMtMS0xLTEwMDY4Mw_ca6d7f10-8635-41e5-b7f4-5cb9317e5ce4"
      unitRef="usd">2119000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE5LTEtMS0xLTk0ODUz_2f34e238-511d-4744-b7a8-e46de0387bb9"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="ie688266910e6494fa1c1ad7173ab67cb_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzE5LTMtMS0xLTk0ODUz_4d2f36ae-ac82-4cb1-91ab-facd23785aef"
      unitRef="usd">16077000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIxLTEtMS0xLTk0ODUz_371fad07-7e50-4898-b575-2a055b4427a4"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent
      contextRef="i749ddfecc38f475192a0e44188c51783_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIxLTMtMS0xLTk0ODUz_26721493-e347-4dac-82be-36842f053986"
      unitRef="usd">641000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:LongTermInvestments
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIyLTEtMS0xLTk0ODUz_97d3c8ed-7795-40e9-843f-aabd38ca6e38"
      unitRef="usd">454117000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIyLTMtMS0xLTk0ODUz_c76e3611-2feb-42cc-9d80-d344a9847cf5"
      unitRef="usd">583748000</us-gaap:LongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIzLTEtMS0xLTk0ODUz_3a4b1b87-9cb4-4688-b0dd-f87c9600083e"
      unitRef="usd">854250000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTplZGVmOWNkYmRkMjM0MTBlYTE5ZGYxZTA5MjZkNzI4Ni90YWJsZXJhbmdlOmVkZWY5Y2RiZGQyMzQxMGVhMTlkZjFlMDkyNmQ3Mjg2XzIzLTMtMS0xLTk0ODUz_68c8a8c1-1459-46a8-84ff-e6430fab691d"
      unitRef="usd">907364000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:DueFromForeignBanks
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIwNQ_008234dd-45f5-487c-8765-8d05b62629ce"
      unitRef="usd">160611000</cgnx:DueFromForeignBanks>
    <cgnx:DueFromForeignBanks
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMg_0fc534cf-64b1-4b64-bac9-ed3a842b577d"
      unitRef="usd">142009000</cgnx:DueFromForeignBanks>
    <us-gaap:InterestReceivable
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzEwOTM_a54beba4-af7b-4985-8d75-86d581e166c0"
      unitRef="usd">3620000</us-gaap:InterestReceivable>
    <us-gaap:InterestReceivable
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzExMDA_aa77b6c0-8e96-4e52-8c75-c97fadea2ced"
      unitRef="usd">3037000</us-gaap:InterestReceivable>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzI0MTE_6f2bbe20-c440-4ae5-a63f-5b08a0de182f">&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, 2022 (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 style="width:36.583%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.709%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.005%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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 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;/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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&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;167,558&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,503)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,055&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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;27,607&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(717)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Agency 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;16,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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 bills&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,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(270)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="display:none"/&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;Municipal 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;635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&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;394,576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;374,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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 bills&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;44,333&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(198)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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;35,144&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,708)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&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;2,095&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;699,693&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;743&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(27,560)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;672,876&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItMS0xLTEtOTQ4NTM_7c12ed12-334e-4d87-830f-a6168d748836"
      unitRef="usd">167558000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItMy0xLTEtOTQ4NTM_5cb33839-be65-45db-b969-4b3dc0977007"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItNS0xLTEtOTQ4NTM_cb41194a-a645-41a2-9250-2a4c84f346c2"
      unitRef="usd">3503000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i8d0dc458e0284c9884a277b3b48a582d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzItNy0xLTEtOTQ4NTM_9014190a-52d2-4046-92a2-e0a4073a778a"
      unitRef="usd">164055000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtMS0xLTEtOTQ4NTM_bcb8a759-b04f-4b33-a340-bb38bed3c460"
      unitRef="usd">27607000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtMy0xLTEtOTQ4NTM_5e7ca9a7-bd5b-42d0-95cd-ab08b5a1fb7f"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtNS0xLTEtOTQ4NTM_4425cc8a-65e4-499c-a565-bb6289542ccc"
      unitRef="usd">717000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ic1ab971bdb29482b926eebe8fb19cbad_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzMtNy0xLTEtOTQ4NTM_a45535b5-aaef-4446-9e7e-c7259ec64aef"
      unitRef="usd">26890000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i605d537deee54d9cbba484cacefee561_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMS0xLTEtMTAwNjkz_1e08d36b-b0fa-4e37-ac83-027766821388"
      unitRef="usd">16143000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i605d537deee54d9cbba484cacefee561_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMy0xLTEtMTAwNjkz_ed0ac36d-192c-40d7-b7c2-366d0347d5ca"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i605d537deee54d9cbba484cacefee561_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNS0xLTEtMTAwNjkz_5f997733-43c7-4c76-b506-756e020491e5"
      unitRef="usd">285000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i605d537deee54d9cbba484cacefee561_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNy0xLTEtMTAwNjkz_337f0e02-3a1f-4dd1-b4d9-837f294fe77a"
      unitRef="usd">15858000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMS0xLTEtOTQ4NTM_7fe333f3-cfab-4bf0-974f-eb73344017af"
      unitRef="usd">11602000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtMy0xLTEtOTQ4NTM_689c7881-db98-4cfb-ad52-9302e986f709"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNS0xLTEtOTQ4NTM_868461ea-8ee0-478e-a1d5-c8bbfd25dfe5"
      unitRef="usd">270000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ia45e4f4961e445ffb0f55366e7d99672_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzYtNy0xLTEtOTQ4NTM_b8220751-3b60-4536-8b2c-0e1d74f0aff4"
      unitRef="usd">11332000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctMS0xLTEtOTQ4NTM_74b751bb-7943-463d-b484-d903f1c1f4a0"
      unitRef="usd">635000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctMy0xLTEtOTQ4NTM_fafd522d-83ee-425e-a4b0-9766c2eb37ab"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctNS0xLTEtOTQ4NTM_5ce2df75-47f8-4f0c-ba74-01dd3db09089"
      unitRef="usd">11000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ib040dc3743ed46ea90055e84346f0443_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzctNy0xLTEtOTQ4NTM_bf62a44c-5c4f-4860-8291-1db6375d8888"
      unitRef="usd">624000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTEtMS0xLTk0ODUz_d69e401c-78e1-4383-8d43-52d5fcd07a74"
      unitRef="usd">394576000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTMtMS0xLTk0ODUz_0e210f14-c1ee-4918-b391-f7d445d5d3e2"
      unitRef="usd">561000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTUtMS0xLTk0ODUz_6a2c241b-05ee-4bf9-806b-810dcd3ef443"
      unitRef="usd">20697000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i1cd14481cf6141c0af4d99b2dbde48ce_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEwLTctMS0xLTk0ODUz_6a7dc96b-c9b0-429a-917b-1eb844a9c149"
      unitRef="usd">374440000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTEtMS0xLTEwMDY5OA_c5715194-c551-4333-beaf-fc94f6a9fe26"
      unitRef="usd">44333000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTMtMS0xLTEwMDY5OA_aecf5b32-2d18-4100-b198-22449e4ce9e1"
      unitRef="usd">79000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTUtMS0xLTEwMDY5OA_b1b05fde-168c-4ee2-8c05-be4346be6438"
      unitRef="usd">198000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i8ebbd2b88c9d4eaa99f0edd9a72faa66_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTctMS0xLTEwMDY5OA_d514b80e-09a8-47e4-bda6-7bbdba361f10"
      unitRef="usd">44214000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTEtMS0xLTk0ODUz_43aaeea6-ce32-4ff7-9e3d-9fa1011ab807"
      unitRef="usd">35144000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTMtMS0xLTk0ODUz_15c2f133-4711-47e7-9e42-d281cce53f0e"
      unitRef="usd">103000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTUtMS0xLTk0ODUz_280a16ad-7f3f-498d-ad28-bf61195809af"
      unitRef="usd">1708000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i96505b0dd0934b6eb089bee13b990fbd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzExLTctMS0xLTk0ODUz_98c05425-141e-42f5-a7b0-9e1814835f7d"
      unitRef="usd">33539000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTEtMS0xLTk0ODUz_a00ac79c-ef23-4a3a-8e7a-a3bde9584377"
      unitRef="usd">2095000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTMtMS0xLTk0ODUz_e71b6e0d-8abd-4dee-88cc-18c455eb3d1a"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTUtMS0xLTk0ODUz_b81e960b-e73f-4425-a40a-38463df6687a"
      unitRef="usd">171000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2421b53df67d48c08bb9749e9494b799_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzEyLTctMS0xLTk0ODUz_86326cf3-6516-479b-a130-30e2eb69387f"
      unitRef="usd">1924000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTEtMS0xLTk0ODUz_01c6fd7d-f74d-4e76-bb2a-cc9ebb86ef17"
      unitRef="usd">699693000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTMtMS0xLTk0ODUz_26f7bd5b-2d26-4d44-bcbf-60bd111e1ba1"
      unitRef="usd">743000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTUtMS0xLTk0ODUz_18e8129b-bc8f-4986-b814-e3c59b6d1557"
      unitRef="usd">27560000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTowNjZjNzQ4N2JkMWM0ZjUzODI1NWU0YzEwMDZhZDhjNS90YWJsZXJhbmdlOjA2NmM3NDg3YmQxYzRmNTM4MjU1ZTRjMTAwNmFkOGM1XzE2LTctMS0xLTk0ODUz_d50acd90-1cff-437a-a571-83d46348be3d"
      unitRef="usd">672876000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIzODk_82b23b01-5950-4f09-80e8-22df4009f615">&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 style="width:34.289%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.885%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.032%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.328%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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 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 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 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 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 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 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;285,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,591)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;187,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(14,609)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;472,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(24,200)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;47,582&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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 bills&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,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(465)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(468)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Agency 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;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(67)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(104)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;382,732&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(12,718)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;190,707&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(14,842)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;573,439&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(27,560)&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;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtMS0xLTEtOTQ4NTM_a33f3f7d-ecad-4cf1-8e0f-a0e570860f6c"
      unitRef="usd">285087000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtMy0xLTEtOTQ4NTM_c966b54b-563b-492c-875a-3191dadb4361"
      unitRef="usd">9591000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtNS0xLTEtOTQ4NTM_10ade96e-a6b3-4b81-b1fe-780bec8fcaca"
      unitRef="usd">187153000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtNy0xLTEtOTQ4NTM_7477cb75-646e-487d-a029-83ea8c5fff34"
      unitRef="usd">14609000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtOS0xLTEtOTQ4NTM_dfc4cee9-4b65-4d4e-99d7-b4d78241c638"
      unitRef="usd">472240000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzMtMTEtMS0xLTk0ODUz_b328962c-d743-4b9b-9980-9b579c1adbf8"
      unitRef="usd">24200000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtMS0xLTEtOTQ4NTM_4fa42214-fc19-448c-ac29-dbdbef6df8ca"
      unitRef="usd">47582000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtMy0xLTEtOTQ4NTM_feef0688-e408-4e34-a49f-c7a7137edf1a"
      unitRef="usd">2299000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtNS0xLTEtOTQ4NTM_6aa9bfbd-3881-4ab6-b143-f3193906d3bc"
      unitRef="usd">2495000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtNy0xLTEtOTQ4NTM_a4a22e0d-50f1-4fe6-b04d-f4bbbe9e4003"
      unitRef="usd">126000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtOS0xLTEtOTQ4NTM_e0107f5e-7a3b-4308-a9a7-57b6f0dce084"
      unitRef="usd">50077000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzQtMTEtMS0xLTk0ODUz_83f37f85-a491-4a68-b3c7-890e12349f9c"
      unitRef="usd">2425000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtMS0xLTEtOTQ4NTM_d5769109-58fe-4e8f-8a2f-61f4984da313"
      unitRef="usd">32614000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtMy0xLTEtOTQ4NTM_af09b1a0-8a33-4218-a777-7ffa38ca1010"
      unitRef="usd">465000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtNS0xLTEtOTQ4NTM_6b36be2c-0395-4e16-adc0-6e12d64c87f0"
      unitRef="usd">102000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtNy0xLTEtOTQ4NTM_349442c1-b993-4b34-9429-c8d9fb98847e"
      unitRef="usd">3000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtOS0xLTEtOTQ4NTM_95f18f04-0e4c-4c8d-b7ef-6d78562c8641"
      unitRef="usd">32716000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzUtMTEtMS0xLTk0ODUz_6847255b-7075-4d2f-b161-11f3604321ac"
      unitRef="usd">468000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtMS0xLTEtOTQ4NTM_e9d41606-3ccb-4129-b19b-8451706fa8bf"
      unitRef="usd">15858000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtMy0xLTEtOTQ4NTM_5194e914-ea2c-4559-bae7-ac63e514236f"
      unitRef="usd">285000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtNS0xLTEtOTQ4NTM_40a71781-ffb8-41bc-b0d4-9bdee25376fb"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtNy0xLTEtOTQ4NTM_e1d4929a-bf74-4a45-b784-30f1c902cc54"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtOS0xLTEtOTQ4NTM_9d2810fc-dae5-4a6a-b6c0-4d894125ee3b"
      unitRef="usd">15858000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzYtMTEtMS0xLTk0ODUz_19bc9a9a-920e-4dbb-a4f9-87a59a0ec443"
      unitRef="usd">285000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMS0xLTEtMTAwNzA5_ce452e5e-ac2c-4a21-8074-2422ca38b276"
      unitRef="usd">967000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMy0xLTEtMTAwNzA5_3e79255b-1594-4871-9076-59098f2f7792"
      unitRef="usd">67000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNS0xLTEtMTAwNzA5_33b46f00-f497-4705-bd0b-022479da8156"
      unitRef="usd">957000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNy0xLTEtMTAwNzA5_285b7d11-73bc-47a0-a7bd-1348c4fd7826"
      unitRef="usd">104000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctOS0xLTEtMTAwNzA5_5ef9c748-2e85-454d-bad8-6daea0622454"
      unitRef="usd">1924000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMTEtMS0xLTEwMDcwOQ_c0f7ba9f-30df-4753-867f-eb73dcd3e4f7"
      unitRef="usd">171000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMS0xLTEtOTQ4NTM_011dfc27-2bd0-4241-9caf-78d327cf33cf"
      unitRef="usd">624000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMy0xLTEtOTQ4NTM_fcba3da3-a674-4038-a945-ded83a504c74"
      unitRef="usd">11000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNS0xLTEtOTQ4NTM_93146d48-693c-4693-8273-be0178d842a7"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctNy0xLTEtOTQ4NTM_5a0a8949-78f1-4b65-933f-575f3c01ac75"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctOS0xLTEtOTQ4NTM_b8f8ce15-37f9-40a8-bfa6-00f8bc0f19c9"
      unitRef="usd">624000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzctMTEtMS0xLTk0ODUz_f45689a3-1db6-48fc-b267-ce29d8ea3e86"
      unitRef="usd">11000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktMS0xLTEtOTQ4NTM_3aec27a5-5364-47cf-91a1-2d054f1b1348"
      unitRef="usd">382732000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktMy0xLTEtOTQ4NTM_9ab870eb-c1b7-47bf-b1ba-5d4723e7e989"
      unitRef="usd">12718000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktNS0xLTEtOTQ4NTM_9e54aa8c-10da-4b96-8ad4-f740ccb48d97"
      unitRef="usd">190707000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktNy0xLTEtOTQ4NTM_84fb62e5-417d-4a54-b152-b32194eb6ee3"
      unitRef="usd">14842000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktOS0xLTEtOTQ4NTM_b613820b-f27d-4589-a1e0-d5a4cfa144b4"
      unitRef="usd">573439000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTpjZjllN2FjNzZlNmM0NTg3OTE3Mzc2ZGFhYTdmYmUzZS90YWJsZXJhbmdlOmNmOWU3YWM3NmU2YzQ1ODc5MTczNzZkYWFhN2ZiZTNlXzktMTEtMS0xLTk0ODUz_cc39e1f0-7576-42a2-997d-bd979a753eef"
      unitRef="usd">27560000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzU0OTc1NTgxNjg0Ng_09941d4d-a378-42c7-ae30-5bfecf891fbe"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzU0OTc1NTgxNjg0Ng_75302c4c-9c5e-4572-bd58-4fd5f2d18b42"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzU0OTc1NTgxNjg0Ng_772e752c-f4b6-4b08-a034-1164d3b96e98"
      unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMDg_94b9cd03-dd57-4ae0-814e-0cb79a1c9212"
      unitRef="usd">133000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMTg_61a6cd09-8be2-4864-885f-c14ace28f6b8"
      unitRef="usd">246000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIxMzI_548485a0-1e70-4335-9255-4804b9df8675"
      unitRef="usd">4283000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIyMDg_858ca16f-784b-48cb-a8f9-fc70860f2446"
      unitRef="usd">315000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIyMTg_e7987579-f579-4c15-babc-1b9b9a3ba851"
      unitRef="usd">10000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIyMzI_87034d4d-1cd5-4bd6-bdd9-45edba4c0e87"
      unitRef="usd">164000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90ZXh0cmVnaW9uOjRlYmE2MGQ5NjU1NzQ1NDFhYWQ1N2Y0Yzg3NmNhMjU4XzIzOTk_b25e70f7-d7db-42b8-adb1-2a41c9417a4e">&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, 2022 (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 style="width:25.508%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.157%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.864%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.256%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:7.818%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.581%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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 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 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 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 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;164,055&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;167,661&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;94,417&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;63,101&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;48,796&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;465&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;538,495&#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;/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;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;26,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 bills&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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,384&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,758&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,546&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Agency 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;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Municipal 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;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;218,759&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;183,812&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;114,345&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;89,056&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;66,439&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;465&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;672,876&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMS0xLTEtOTQ4NTM_f6b0f341-a5cb-48e0-ac6f-2bb42a935279"
      unitRef="usd">164055000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMy0xLTEtOTQ4NTM_65284d92-482b-4838-b42c-c8b755865359"
      unitRef="usd">167661000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtNS0xLTEtOTQ4NTM_203151b1-7534-4723-a7c8-2c2186f2ba14"
      unitRef="usd">94417000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtNy0xLTEtOTQ4NTM_c8de021f-2de2-4fd9-91d2-81a8b97a1e5b"
      unitRef="usd">63101000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtOS0xLTEtOTQ4NTM_3e5bf98f-cd71-4e61-922b-96c915d2e31d"
      unitRef="usd">48796000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMTEtMS0xLTEwMzY4Mg_26f9095f-f5f8-4b38-b4dc-7220316c21c7"
      unitRef="usd">465000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i42d6f375c3f7421b82f634793c07bb5a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzEtMTMtMS0xLTk0ODUz_4cdd945f-2177-46d4-88da-d9efc2b81cbf"
      unitRef="usd">538495000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMS0xLTEtOTQ4NTM_5894e8d6-1b1f-4cd2-9b0c-d7e244a88092"
      unitRef="usd">26890000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMy0xLTEtOTQ4NTM_e33fff0e-1167-404a-9205-20a823c5cc2e"
      unitRef="usd">12755000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItNS0xLTEtOTQ4NTM_e0cb257d-fb30-4a1e-8dd8-515095ea7105"
      unitRef="usd">12587000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItNy0xLTEtOTQ4NTM_152f601c-05f3-42fc-ba29-d25e68f7af0c"
      unitRef="usd">8197000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItOS0xLTEtOTQ4NTM_8dd715d3-fc4b-4d78-8408-9558a7ca3129"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMTEtMS0xLTEwNTUzNw_b127026e-ad48-4783-aa7a-8205009269da"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i3d9ecc9c5acb4d4b868dc1ec83d62668_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzItMTMtMS0xLTk0ODUz_6829fc6e-a228-47f6-9a47-cf934dd3e5bc"
      unitRef="usd">60429000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMS0xLTEtOTQ4NTM_a5bb0a89-bd12-4b67-9cf0-dc8738aab62e"
      unitRef="usd">11332000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMy0xLTEtOTQ4NTM_f7f09e3b-edec-4634-8a21-a299b70d0114"
      unitRef="usd">2429000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtNS0xLTEtOTQ4NTM_9c3ff413-c13d-41b4-b62d-0e8e45d6d642"
      unitRef="usd">6384000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtNy0xLTEtOTQ4NTM_21c683f2-41fd-447c-b938-f5902c8b7894"
      unitRef="usd">17758000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtOS0xLTEtOTQ4NTM_c537fbda-77d7-49ff-857c-d646f144db60"
      unitRef="usd">17643000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMTEtMS0xLTEwNTUzOQ_a151948e-a89d-452e-8842-7c7d8bab75c5"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie9e16ca41b2c4e2c92d70a95bd3bd02c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzMtMTMtMS0xLTk0ODUz_e163524f-f83c-46e9-896c-1b73a3fdaae6"
      unitRef="usd">55546000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMS0xLTEtOTQ4NTM_47abe5c6-df46-47cd-aa52-b12c85a246be"
      unitRef="usd">15858000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMy0xLTEtOTQ4NTM_d43fc4a5-f6c2-46d9-bf79-a72f06484b75"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtNS0xLTEtOTQ4NTM_b6279afc-929d-49c2-98bb-a793244d43f0"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtNy0xLTEtOTQ4NTM_294ad98e-64ca-48ea-84ed-af09374f6910"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtOS0xLTEtOTQ4NTM_662099a4-5f59-475d-89ed-62ac6fed17c1"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMTEtMS0xLTEwNTU0MQ_bf42cd19-ed33-452d-bcdd-ada4939fbf4d"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i76b31b3c521141c99c9efed5974a22bb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzUtMTMtMS0xLTk0ODUz_e20280d0-58ec-4691-8762-0d5ea9439b04"
      unitRef="usd">15858000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMS0xLTEtMTAwNzIz_398ed28b-e899-4fed-a209-bed2a1d9c987"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMy0xLTEtMTAwNzIz_22a98c81-db68-4e8e-aaab-3a2f474967d9"
      unitRef="usd">967000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNS0xLTEtMTAwNzIz_1144e303-b80f-4e9c-999d-004bddfcc663"
      unitRef="usd">957000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNy0xLTEtMTAwNzIz_626e4343-ed75-42ad-89ec-17907c2ef8d2"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtOS0xLTEtMTAwNzIz_38821d25-3a50-4130-9fe6-771df6cbd61a"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMTEtMS0xLTEwNTU0Mw_52c130ab-7505-4eab-aa0a-dcd19b28a3a7"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie84fe8bb8f1b415198a5814473e65315_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMTMtMS0xLTEwMDcyMw_e6773d73-d14f-4476-aa08-9e9d88bf5c60"
      unitRef="usd">1924000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMS0xLTEtOTQ4NTM_14913197-1ddc-49dd-a06c-62543290e386"
      unitRef="usd">624000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMy0xLTEtOTQ4NTM_b1ebdd6d-03b6-4308-ab6b-9ab373467ae6"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNS0xLTEtOTQ4NTM_c18ba5ab-16c8-4688-9259-2ca5c36b0e52"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtNy0xLTEtOTQ4NTM_acf51027-f3b8-483d-b626-43e51a824d53"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtOS0xLTEtOTQ4NTM_9baf2918-1d5f-4490-8c66-9b0b2abd3f68"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzctMTEtMS0xLTEwNTU0NQ_37993126-dd9b-4439-8688-cbbce0c5bf67"
      unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i913eccf532734d7885578917cd746347_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzYtMTMtMS0xLTk0ODUz_c4e70b1b-2086-4222-8e65-5ee8def9c723"
      unitRef="usd">624000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMS0xLTEtOTQ4NTM_977571f7-40bf-4163-a98a-019b4d3692d6"
      unitRef="usd">218759000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMy0xLTEtOTQ4NTM_c8c52259-7f04-4f25-9f32-4f38840ce870"
      unitRef="usd">183812000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtNS0xLTEtOTQ4NTM_b622c4bb-0acf-4720-b5b9-3791573cace9"
      unitRef="usd">114345000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtNy0xLTEtOTQ4NTM_6b2a6685-5cf4-460a-be9f-06f451008067"
      unitRef="usd">89056000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtOS0xLTEtOTQ4NTM_97cdf8fe-195a-422b-923a-0dfa3360fb4f"
      unitRef="usd">66439000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMTEtMS0xLTEwNTU0Nw_590f4969-e759-4301-b1e8-b6011b6a3d01"
      unitRef="usd">465000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMTUvZnJhZzo0ZWJhNjBkOTY1NTc0NTQxYWFkNTdmNGM4NzZjYTI1OC90YWJsZTo3MzdlZmZhODg4YTE0YjA4YTYxMzNkNTBhNTQyY2U2NS90YWJsZXJhbmdlOjczN2VmZmE4ODhhMTRiMDhhNjEzM2Q1MGE1NDJjZTY1XzgtMTMtMS0xLTk0ODUz_64b73ad7-65ff-4fe5-b9af-18041f5b8cb2"
      unitRef="usd">672876000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzM5NQ_d8bb0704-9430-452e-8e92-894e438acf7a">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 style="width:70.935%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.516%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.517%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2021&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;71,720&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;50,452&#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;/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;906&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;49,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;122,480&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;113,102&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 Company recorded provisions for excess and obsolete inventories of $3,084,000 and $2,573,000 in 2022 and 2021, respectively, which reduced the carrying value of the inventories to their net realizable value.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Refer to Note 22 for information regarding losses incurred from the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022, including the impact on inventories and incremental provisions for excess and obsolete inventories recorded as a result of this fire.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzQwNg_30579e02-2b6e-4fa0-b716-19d673de9642">&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 style="width:70.935%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.516%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.517%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2021&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;71,720&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;50,452&#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;/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;906&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,293&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;49,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;122,480&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;113,102&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzItMS0xLTEtOTQ4NTM_5ee60afe-b00b-4b87-b53b-0ac63bd07c41"
      unitRef="usd">71720000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzItMy0xLTEtOTQ4NTM_6ae19e7e-416e-40a0-b34b-89203f9adc8b"
      unitRef="usd">50452000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzMtMS0xLTEtOTQ4NTM_9a6e30da-aff2-46e5-9e57-b8a578c13e37"
      unitRef="usd">906000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzMtMy0xLTEtOTQ4NTM_0b8b1092-9f56-41c7-8ae7-827e65e0cb42"
      unitRef="usd">5293000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzQtMS0xLTEtOTQ4NTM_691fe8a9-b429-4967-a7d2-63e1cb7a0560"
      unitRef="usd">49854000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzQtMy0xLTEtOTQ4NTM_310024bf-6a1b-4c79-afd1-796833d1f681"
      unitRef="usd">57357000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzUtMS0xLTEtOTQ4NTM_4dc39941-982f-46b6-a86c-6346615ff1cb"
      unitRef="usd">122480000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90YWJsZTo2NDdhNWZhODYzZGI0OTI4OGVlMGMwZmM1NjdkYWMyMC90YWJsZXJhbmdlOjY0N2E1ZmE4NjNkYjQ5Mjg4ZWUwYzBmYzU2N2RhYzIwXzUtMy0xLTEtOTQ4NTM_64aa96b1-3923-4f37-8d93-affb7e4f14a3"
      unitRef="usd">113102000</us-gaap:InventoryNet>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzE1Mw_17defeae-93df-4be6-8ab0-d02bd1f5790c"
      unitRef="usd">3084000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjEvZnJhZzo4MWEzODliNDc2Mjg0MjdjYTViN2JkMjc3YjFiNGYwNy90ZXh0cmVnaW9uOjgxYTM4OWI0NzYyODQyN2NhNWI3YmQyNzdiMWI0ZjA3XzE2MA_b1776cf5-b9aa-4560-8c4e-25efbf79d174"
      unitRef="usd">2573000</cgnx:ExcessAndObsoleteInventoryCharges>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzU5NA_828a3364-1054-4a95-ab00-06972fd2bef7">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 style="width:70.935%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.516%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.517%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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;3,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:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;3,951&#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;/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;24,533&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;45,003&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,886&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;14,491&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;53,663&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;27,176&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,562&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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,378&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,449&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;175,195&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;174,565&#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;/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;(95,481)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(97,019)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;79,714&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;77,546&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 $17,358,000 and accumulated depreciation of $16,604,000 in 2022, resulting in a loss of $754,000. Of this loss, $735,000 relates to production equipment destroyed as a result of the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022 (refer to Note 22) and is included in "Non-cash impact of charges related to fire (Note 22)" on the Consolidated Statements of Cash Flows. The Company disposed of property, plant, and equipment with a cost basis of $20,647,000 and accumulated depreciation of $20,614,000 in 2021, resulting in a loss of $33,000.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzYwMA_c0e8bd0b-096f-4561-b7fb-757adc529e54">&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 style="width:70.935%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.516%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.517%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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;3,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:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;3,951&#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;/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;24,533&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;45,003&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,886&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;14,491&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,436&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;53,663&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;27,176&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,562&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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,378&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,449&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;175,195&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;174,565&#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;/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;(95,481)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(97,019)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;79,714&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;77,546&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i6e272a23bb514c139f6b134454ffaeee_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzItMS0xLTEtOTQ4NTM_a6a1239c-6679-4458-84b3-da2b1f8358f7"
      unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ice8f86701a48433090de5a2b0912eebc_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzItMy0xLTEtOTQ4NTM_440a8e40-2d6e-4a23-be47-c1589f55caa0"
      unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i84b7d2603a2e4a02912247cf825c6379_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzMtMS0xLTEtOTQ4NTM_901718b9-e8cb-4dd1-b898-4cdb1eac4919"
      unitRef="usd">24533000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i5f0394f5d2ab41368c68fe84b64e89a8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzMtMy0xLTEtOTQ4NTM_dcdf3ea3-77a8-43c4-9b1a-3e6b09a26912"
      unitRef="usd">24533000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i847049a23e58411caaf58e118c4ad138_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzQtMS0xLTEtOTQ4NTM_b3febad0-134b-450a-aa9e-21031a819746"
      unitRef="usd">45003000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i0495920d2da04898b12b2c82d77310aa_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzQtMy0xLTEtOTQ4NTM_5be9eb52-2e56-4e7b-ac5b-023ab7ce0c5e"
      unitRef="usd">47886000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i39f965f20d5f4868bf1dac738b98ae6d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzUtMS0xLTEtOTQ4NTM_9ee422e3-fb16-4816-a2d8-c2b64108907d"
      unitRef="usd">14491000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i46dbc724c2374c85aee350ae4aabbf7a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzUtMy0xLTEtOTQ4NTM_01b6ff49-d0cb-4df0-b3d2-75499e7e8bdb"
      unitRef="usd">10436000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ic0b2e605af7547a9a85dde4ac9575e36_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzYtMS0xLTEtOTQ4NTM_07bef791-1838-43da-b4a2-f97fa776b24b"
      unitRef="usd">53663000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i63bdb8bcaf6c45c1a6c88354e1c3ca86_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzYtMy0xLTEtOTQ4NTM_e43adbaa-7702-4d74-8f6c-2133a8daa16e"
      unitRef="usd">50748000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ib83d19a4b43e47ef8cd7ecb03f760ec8_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzctMS0xLTEtOTQ4NTM_917588f5-3523-4bd3-a640-87fac3db1eb9"
      unitRef="usd">27176000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ie7a93f183b304d60ab4f100858cac07a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzctMy0xLTEtOTQ4NTM_fcc2f607-0fc9-401c-a6bc-811f1638c5a0"
      unitRef="usd">30562000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i4e7d87a496d44de2879567339065aa1c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzgtMS0xLTEtOTQ4NTM_d0460457-460c-474c-ab47-4a55f1454f67"
      unitRef="usd">6378000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i42db3fa11317411fa84706594979672a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzgtMy0xLTEtOTQ4NTM_34747974-5c4a-4723-9d48-042f20ff726f"
      unitRef="usd">6449000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzktMS0xLTEtOTQ4NTM_b8df1b4f-0b0b-4e33-a557-460f4644cf9e"
      unitRef="usd">175195000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzktMy0xLTEtOTQ4NTM_ce818ca8-1d9e-4c9d-a576-d14beb453a4f"
      unitRef="usd">174565000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzEwLTEtMS0xLTk0ODUz_f8376990-8ea7-4847-86cc-cb1af98c4c3b"
      unitRef="usd">95481000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzEwLTMtMS0xLTk0ODUz_cb89a91a-2285-4352-b308-efd5db0b994d"
      unitRef="usd">97019000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzExLTEtMS0xLTk0ODUz_6c03f71f-f622-488d-808c-f56fb78f0002"
      unitRef="usd">79714000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90YWJsZTo5NzcxNjA1NTRlNmU0ODI1Yjc3YTYyMzBhOTkzYzQwYy90YWJsZXJhbmdlOjk3NzE2MDU1NGU2ZTQ4MjViNzdhNjIzMGE5OTNjNDBjXzExLTMtMS0xLTk0ODUz_707ea2f6-ca25-47da-9605-dc99bf3d1123"
      unitRef="usd">77546000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentDisposals
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzE5Ng_a79f1fae-a664-432b-a155-3278cd15828a"
      unitRef="usd">17358000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzIzMQ_8b701776-4b90-4cfb-984f-242105db3e40"
      unitRef="usd">16604000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzI2NA_dc48ecb8-33f7-4dcc-b42f-5e5e4a21099c"
      unitRef="usd">-754000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="i0d12b535f83e4ceb92e3ecc1ce3fbe76_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzU0OTc1NTgxNTI3Mg_bdb1ff83-db35-4ace-b222-34310ee25d14"
      unitRef="usd">-735000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:PropertyPlantAndEquipmentDisposals
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzM0NA_89e643ea-7b83-4e5e-b6a3-a28052b96297"
      unitRef="usd">20647000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzM3OQ_15fbe7c7-ffbb-4a69-a7f3-7b9b128a5e45"
      unitRef="usd">20614000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:GainLossOnDispositionOfAssets1
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMjQvZnJhZzo3ZDg1OWU4MDFlMDQ0MjUyOTgwYzRjNzgyNjM5NjY0MC90ZXh0cmVnaW9uOjdkODU5ZTgwMWUwNDQyNTI5ODBjNGM3ODI2Mzk2NjQwXzQxMg_ef15bab1-a623-4759-947a-0b6023348d7b"
      unitRef="usd">-33000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNjQ0MzgzNzMwNjA0_d641c5d1-817d-41f7-bec9-94b4c5bc7fbf">Leases&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's leases are primarily leased properties across different worldwide locations where the Company conducts its operations. 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, 2022 , there were two options to terminate and fifteen 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, 2022. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 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 operating lease expense was $8,939,000 in 2022, and $8,180,000 in both 2021 and 2020. The total operating lease cash payments were $8,548,000, $8,225,000, and $8,009,000 in 2022, 2021, and 2020, respectively. 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 $144,000, $154,000, and $123,000 in 2022, 2021, and 2020, respectively.&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 style="width:82.648%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:2.728%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.224%"/&gt;&lt;td style="width:0.1%"/&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 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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;9,473&#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;/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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,975&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,809&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;44,336&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 $39,752,000 and $25,581,000 as of December 31, 2022 and 2021, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 December 2021, the Company entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of ten years to serve as a new distribution center for customers in the Americas. 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 ten-year term. This lease commenced during the first quarter of 2022, and therefore the Company recorded approximately $9,271,000 within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 3.3% and 3.4% for the leases outstanding as of December 31, 2022 and December 31, 2021, respectively. The weighted-average remaining lease term was 7.8 years and 5.1 years for the leases outstanding as of December 31, 2022 and 2021, 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;Management closed eleven leased offices in 2020, prior to the end of their lease terms, as a part of a restructuring plan (refer to Note 23). The carrying value of the lease assets associated with these offices was reduced to zero, resulting in operating lease asset impairment charges of $3,427,000 in 2020 that are included in "Restructuring charges" on the Consolidated Statements of Operations. Remaining lease liability obligations associated with the early contract terminations totaled $765,000 and $1,717,000 as of December 31, 2022 and 2021, respectively, and are included in "Operating lease liabilities" on the Consolidated Balance Sheets. The Company did not record impairment charges related to &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyMDk0NjI3OTE2NzE3_f7c0adc1-fff6-4724-8df6-067e74b7d592"&gt;operating lease&lt;/span&gt; assets in 2022 or 2021.&lt;/span&gt;&lt;/div&gt;The Company owns a building adjacent to its corporate headquarters that was partially occupied by a tenant during a portion of 2020. This lease terminated prior to the end of its lease term during the second quarter of 2020, and the Company is now fully occupying this building for its operations. Annual rental income related to this lease totaled $77,000 in 2020.</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzExNzM_e230b18c-7738-479a-84d3-5345379abde2"
      unitRef="usd">8939000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzExOTk_00a95a36-a334-4d50-a371-e1f08e76d770"
      unitRef="usd">8180000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzExOTk_a525e00c-5356-4a6b-9f76-361442097103"
      unitRef="usd">8180000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeasePayments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNTQ_3bd22c9a-d415-4871-b863-e0cfcd575bb5"
      unitRef="usd">8548000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNTg_1e7aa534-a581-47e0-b4bc-97eb7a3bd287"
      unitRef="usd">8225000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzEyNjY_bcba5ef2-0d0e-4269-91e2-057424055008"
      unitRef="usd">8009000</us-gaap:OperatingLeasePayments>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE0NTg_c8be0a4a-051f-4e6d-a2fe-c4f7139f4e59"
      unitRef="usd">144000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE0NjI_67c06125-9032-4b83-b7bd-ea8e4341fd34"
      unitRef="usd">154000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE0NzA_c8b00f22-150b-48ad-b194-419d85763ba2"
      unitRef="usd">123000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzQxMTQ_e2f97469-1884-4e11-95dc-1345a744df55">&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 style="width:82.648%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:2.728%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.224%"/&gt;&lt;td style="width:0.1%"/&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 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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;9,473&#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;/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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,975&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,353&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,809&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;44,336&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzEtMi0xLTEtOTQ4NTM_67735e9c-b9db-4803-b587-e78e41fc991f"
      unitRef="usd">9473000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzItMi0xLTEtOTQ4NTM_db07d5f7-d508-45f6-8c05-23a55543e7d1"
      unitRef="usd">6935000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzMtMi0xLTEtOTQ4NTM_23f0496d-86e2-4f8c-8c80-5435aa205627"
      unitRef="usd">4975000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzQtMi0xLTEtOTQ4NTM_08c9d85d-ed0e-4eb6-a2e4-04dce1dc11da"
      unitRef="usd">3791000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzUtMi0xLTEtOTQ4NTM_a5fbc8f7-aa4c-45d8-bd09-b3c587573c86"
      unitRef="usd">3353000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzYtMi0xLTEtOTQ4NTM_1edcd628-3824-424a-8353-72ba881d0beb"
      unitRef="usd">15809000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90YWJsZToxYzAyZDUxNTVlNjI0N2MyYWM5YjE3MWFlOGQ4NDYyNS90YWJsZXJhbmdlOjFjMDJkNTE1NWU2MjQ3YzJhYzliMTcxYWU4ZDg0NjI1XzctMi0xLTEtOTQ4NTM_68b3fae7-4e0b-4676-bd7e-56639781200d"
      unitRef="usd">44336000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <cgnx:OperatingLeaseLiabilityDiscountedPresentValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE2NzI_0f0279c2-104c-428b-947e-72590c3a4efa"
      unitRef="usd">39752000</cgnx:OperatingLeaseLiabilityDiscountedPresentValue>
    <us-gaap:OperatingLeaseLiability
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzE2Nzk_ed720472-8a36-4a5e-8951-ecbd0fe33c92"
      unitRef="usd">25581000</us-gaap:OperatingLeaseLiability>
    <us-gaap:NetRentableArea
      contextRef="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcwMg_6dd4fd02-c45a-4017-9f79-1cb2c8a2b58a"
      unitRef="sqft">65000</us-gaap:NetRentableArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcwOQ_fcfbbd30-5126-438b-aa73-2a132cef636b">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract
      contextRef="ib3c018963bbf478b803bd0dd571dd451_D20211201-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcxMA_4a66e863-dde9-4629-b629-d4a65e3fea48">P5Y</cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="ic71bbc2d7ff049e0ba96cfb473a1a948_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTcxMw_01ab07c6-567c-4864-aa14-9268951887be">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:OperatingLeaseLiability
      contextRef="ifd68f7dfd0b24e8a821f44e87cfc53eb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTY5MA_3b9633fd-b0b0-4859-8807-c8b068baaaac"
      unitRef="usd">9271000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ifd68f7dfd0b24e8a821f44e87cfc53eb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMTY5MA_f99a271e-6779-403c-83b6-0f15a25c51b9"
      unitRef="usd">9271000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzI3OTY_937365dd-b9f1-4099-993e-ba4db2db0034"
      unitRef="number">0.033</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzI4MDM_f2332a43-d8ec-460c-9983-d4d2fc51960f"
      unitRef="number">0.034</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzU0OTc1NTgyMDE4Ng_ed131bbd-e99f-42d7-8490-118375fe899a">P7Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzI5MzY_e468d2f3-e3ca-4017-acae-f28d4d4211db">P5Y1M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <cgnx:OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset
      contextRef="i8428a5c435e443179e4f2794758325f8_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzMyNDE_b9540b6b-c108-42f6-9063-4ca4faed3dac"
      unitRef="usd">0</cgnx:OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset>
    <us-gaap:AssetImpairmentCharges
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzMzMDI_7df4308e-7412-4c83-9cb8-14e7507bd1c0"
      unitRef="usd">3427000</us-gaap:AssetImpairmentCharges>
    <us-gaap:OperatingLeaseLiability
      contextRef="i5dd4f9f80b354a32b572aaa1f2285f17_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzM0OTg_1b41f820-936b-4503-8fd3-a18ca03a926f"
      unitRef="usd">765000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="ic3b49e8ab0bb42d8aadf3956795e5896_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzM1MDU_1c1287c5-f6ea-4117-937f-83e7c26e978d"
      unitRef="usd">1717000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLeaseIncome
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzAvZnJhZzpjOWNhNzE4MjAyMTI0ZWY4ODA5ODc1YWJlZWM2MDNkNS90ZXh0cmVnaW9uOmM5Y2E3MTgyMDIxMjRlZjg4MDk4NzVhYmVlYzYwM2Q1XzQwODg_d8695263-a85b-4862-9427-bfbd86e8a14a"
      unitRef="usd">77000</us-gaap:OperatingLeaseLeaseIncome>
    <us-gaap:GoodwillDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90ZXh0cmVnaW9uOmFiMmJmYzE4ZmNhZjQ3NjdiZWUyNGIwOGY4YzBlOTk1XzQyNQ_6f0b038d-b873-4d98-bb0e-b3a8c0405268">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 style="width:83.380%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.688%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;244,078&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,365)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;241,713&#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;/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 SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,442)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;242,630&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 2022 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 2022, 2021, or 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90ZXh0cmVnaW9uOmFiMmJmYzE4ZmNhZjQ3NjdiZWUyNGIwOGY4YzBlOTk1XzQzMQ_0a6ee4d6-172e-465a-9495-3831914d96ef">&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 style="width:83.380%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.688%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;244,078&#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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,365)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;241,713&#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;/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 SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,442)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;242,630&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzEtMi0xLTEtOTQ4NTM_7ab01696-bfe2-4b90-a553-711d2f55ae6c"
      unitRef="usd">244078000</us-gaap:Goodwill>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzQtMi0xLTEtOTQ4NTM_f4b7ba35-8fd3-4882-867b-0caa6a26de78"
      unitRef="usd">-2365000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzYtMi0xLTEtOTQ4NTM_e2c07b27-d137-4cb5-886f-b078c21170d5"
      unitRef="usd">241713000</us-gaap:Goodwill>
    <us-gaap:GoodwillOtherIncreaseDecrease
      contextRef="i2d09a9ae0d9f4bc0b5bc26258923e52e_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzctMi0xLTEtOTQ4NTM_7a7edd53-eeac-4af0-bdb2-a844a776f7a1"
      unitRef="usd">2359000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzgtMi0xLTEtOTQ4NTM_19521f9c-f89a-481e-a986-25df831ba2aa"
      unitRef="usd">-1442000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzYvZnJhZzphYjJiZmMxOGZjYWY0NzY3YmVlMjRiMDhmOGMwZTk5NS90YWJsZTo5ZmZhMWFhZjZjYjg0ODk2OGExOGJmYjc1MjU2Mjg0Yy90YWJsZXJhbmdlOjlmZmExYWFmNmNiODQ4OTY4YTE4YmZiNzUyNTYyODRjXzktMi0xLTEtOTQ4NTM_fd506a13-6b28-4ff2-ad8a-0cb9ca48bf25"
      unitRef="usd">242630000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE5MDQ_f97fd01e-32e4-45bc-8d45-c716e11722f7">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 style="width:51.176%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.320%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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;Completed technologies&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;28,017&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(17,744)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;10,273&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,838&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,860)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,978&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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: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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(177)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;163&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;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-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;34,195&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;(21,781)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;12,414&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&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: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:#ffffff;padding:0 1pt"/&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;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;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;Completed technologies&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: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;24,217&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(15,234)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;8,983&#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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,578&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,891)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,687&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(492)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Distribution networks&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;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,060)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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:400;line-height:100%"&gt;110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(110)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;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;73,675&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(61,787)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;11,888&#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;/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;In connection with the acquisition of SAC Sirius Advanced Cybernetics GmbH ("SAC") in the fourth quarter of 2022 (refer to Note 21), the Company acquired completed technologies valued at $3,800,000 with an estimated useful life of 7 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;In 2022, the Company retired approximately $43,280,000 of intangible assets primarily related to distribution networks and customer relationships that were fully amortized and had a net carrying value of zero on the Consolidated Balance Sheets.&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 adverse impact of the COVID-19 pandemic on our business in 2020 triggered a review of long-lived assets, including intangible assets, for potential impairment during the second quarter of 2020. Based on this assessment, management concluded that certain of the Company's finite-lived intangible assets failed the recoverability test, and recorded impairment charges for these assets equal to the amount by which their carrying value exceeded their fair value. The Company also measured the fair value and recorded an impairment charge for its indefinite-lived intangible asset related to in-process technologies. The fair values were established, with the assistance of an outside valuation advisor, using the income approach based on a discounted cash flow model that estimated future revenue streams and expenses attributable to those revenue streams provided by management.&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 review resulted in &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEyMDk0NjI3OTEyNTM5_b5a3a977-f818-42cc-9d87-d8c18828a4f9"&gt;intangible asset impairment charges&lt;/span&gt; totaling $19,571,000 in the second quarter of 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab Co. Ltd. ("Sualab") as a result of the deteriorating global economic conditions from the COVID-19 pandemic. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $10,070,000, $5,900,000, and $3,382,000, respectively. In addition, customer relationships acquired from EnShape GmbH that had a gross carrying value of $447,000 and accumulated amortization of $228,000 on the measurement date were reduced to zero, resulting in an impairment charge of $219,000. The Company did not record impairment charges related to intangible assets in 2022 or 2021.&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 style="width:81.623%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.445%"/&gt;&lt;td style="width:0.1%"/&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 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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;3,137&#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;/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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,623&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,086&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;12,414&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE5MTA_101d5e1c-b77b-4df0-8481-132ee12f3e00">&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 style="width:51.176%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.320%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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 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;Completed technologies&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;28,017&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(17,744)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;10,273&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,838&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,860)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,978&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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: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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(177)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;163&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;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-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;34,195&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;(21,781)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;12,414&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:0 1pt"/&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: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:#ffffff;padding:0 1pt"/&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;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;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;Completed technologies&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: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;24,217&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(15,234)&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;8,983&#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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,578&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,891)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,687&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;710&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(492)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Distribution networks&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;38,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,060)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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:400;line-height:100%"&gt;110&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(110)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;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;73,675&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(61,787)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;11,888&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzItMS0xLTEtOTQ4NTM_72f97cae-4b01-45a8-8e3c-9e82c35190fa"
      unitRef="usd">28017000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzItMy0xLTEtOTQ4NTM_107fa961-8cee-4458-a75d-ea599906cd66"
      unitRef="usd">-17744000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie4260c8d59d441edb4d102c90cbbbe9e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzItNS0xLTEtOTQ4NTM_53f8fa98-fd7b-4aa9-8fff-cccc9c0bf612"
      unitRef="usd">10273000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzMtMS0xLTEtOTQ4NTM_60bbcc7a-5e25-4466-8d16-830e3f10f6dd"
      unitRef="usd">5838000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzMtMy0xLTEtOTQ4NTM_0c76c7bb-e1eb-4575-a9e1-b7fa3f3af540"
      unitRef="usd">-3860000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i92c645fea5f54d8ea4c0f5de9c0b83be_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzMtNS0xLTEtOTQ4NTM_13eccff3-28e1-48cf-927d-6b75b63e7d39"
      unitRef="usd">1978000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i6f141c1c8d6049f2b30349071c15c24e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzUtMS0xLTEtOTQ4NTM_dfdc5cb5-4d51-447c-aaee-65db1c2361f0"
      unitRef="usd">340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i6f141c1c8d6049f2b30349071c15c24e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzUtMy0xLTEtOTQ4NTM_63278c63-c98b-48aa-bc4e-8f7dc63dee37"
      unitRef="usd">-177000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i6f141c1c8d6049f2b30349071c15c24e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzUtNS0xLTEtOTQ4NTM_182d119c-70e4-4d5e-a983-bc78ba119743"
      unitRef="usd">163000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzctMS0xLTEtOTQ4NTM_c1db972b-75e6-479d-89e8-52f18ac69475"
      unitRef="usd">34195000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzctMy0xLTEtOTQ4NTM_ead690a0-518a-40e1-b9b8-5a2015047bd3"
      unitRef="usd">-21781000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzctNS0xLTEtOTQ4NTM_24206638-b926-4031-a352-a9e138b6f9ef"
      unitRef="usd">12414000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i8bab6017cb6946c499661bc2de073401_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzExLTEtMS0xLTk0ODUz_02cece57-839b-47ed-9da0-cc4d2d80a05c"
      unitRef="usd">24217000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i8bab6017cb6946c499661bc2de073401_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzExLTMtMS0xLTk0ODUz_31d10070-8abb-4275-90f2-19e0e9676840"
      unitRef="usd">-15234000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i8bab6017cb6946c499661bc2de073401_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzExLTUtMS0xLTk0ODUz_5aa4c080-7f9e-45c8-947f-493cbe87fbb8"
      unitRef="usd">8983000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i3e19d5ac14304bb6ba3db1840e190253_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzEyLTEtMS0xLTk0ODUz_382982f3-1705-4682-bb2f-55ff4c45b2e0"
      unitRef="usd">10578000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i3e19d5ac14304bb6ba3db1840e190253_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzEyLTMtMS0xLTk0ODUz_b599ef39-c75a-41a3-b9aa-140c352f9ea0"
      unitRef="usd">-7891000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i3e19d5ac14304bb6ba3db1840e190253_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzEyLTUtMS0xLTk0ODUz_48ca6c53-4fb8-4a64-91f5-abb270190d8e"
      unitRef="usd">2687000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="icf4836dc41804690a3bfeae1104c6bf1_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE0LTEtMS0xLTk0ODUz_be3371a5-82ab-42a4-8bd9-e4f182ccbc5e"
      unitRef="usd">710000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="icf4836dc41804690a3bfeae1104c6bf1_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE0LTMtMS0xLTk0ODUz_c5c3c02b-3c30-42f0-9d0a-b1a9602bb9f8"
      unitRef="usd">-492000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="icf4836dc41804690a3bfeae1104c6bf1_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE0LTUtMS0xLTk0ODUz_a7c3de0c-de3f-4d05-bc2c-901d3edb7be2"
      unitRef="usd">218000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i2aad6cd17e034caca4cc804fad03323b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTEtMS0xLTEwMTgzNA_bd167206-95d4-49e0-be5c-7afb9ff3199d"
      unitRef="usd">38060000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i2aad6cd17e034caca4cc804fad03323b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTMtMS0xLTEwMTgzNA_bf85baa4-2ef7-42a0-86b5-4c0b23077b79"
      unitRef="usd">-38060000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i2aad6cd17e034caca4cc804fad03323b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTUtMS0xLTEwMTgzNA_3e41368a-19eb-4063-a978-5e479e940f9d"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ic4f35afad63948a098933637d250b644_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTEtMS0xLTk0ODUz_b7326102-843b-4121-971a-ff76308d49a3"
      unitRef="usd">110000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ic4f35afad63948a098933637d250b644_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTMtMS0xLTk0ODUz_7491b132-2fb0-4dda-898f-17255d3a83b4"
      unitRef="usd">-110000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic4f35afad63948a098933637d250b644_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE1LTUtMS0xLTk0ODUz_9c052537-c0c1-4139-a1a8-6b7302ede927"
      unitRef="usd">0</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE2LTEtMS0xLTk0ODUz_6a480d15-4dde-426f-8d60-e71d7ebdabfe"
      unitRef="usd">73675000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE2LTMtMS0xLTk0ODUz_f0f8f8cf-5bdc-4e85-b991-cd2474e44a60"
      unitRef="usd">-61787000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTplN2Y0YTY2NGY4NjA0M2FlOTYyYzYzMWYwODFhYjA5NC90YWJsZXJhbmdlOmU3ZjRhNjY0Zjg2MDQzYWU5NjJjNjMxZjA4MWFiMDk0XzE2LTUtMS0xLTk0ODUz_ee0c464c-5ade-40b4-bd1b-5489c988d229"
      unitRef="usd">11888000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="ic495a3bd530f4ebca6eb231ec7e6472d_I20221207"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzU0OTc1NTgyMDA1NA_77bbd123-af1c-402d-8594-6dd060aa78aa"
      unitRef="usd">3800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="i33354f9f10e947f0bbdfd51008fc6673_D20221207-20221207"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzU0OTc1NTgyMDExNg_21ecda91-660d-40ac-9beb-a6cf90c9629f">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i6b6333f398cb446f874831b0a7ce430b_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzU0OTc1NTgxOTgzOQ_3d1fe510-1249-454e-b044-3f53ce12d5d8"
      unitRef="usd">43280000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzEwNDQ_cc56f962-105d-4f05-bbef-ca0d38fe2ffb"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="ie67d26e226f842f78def61df0513f4d1_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE0MzM_2490da79-d71d-4595-bbe0-3c7ff3ec0855"
      unitRef="usd">10070000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill
      contextRef="idada75d878da464ea026b4a203cbcb10_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE0Mzc_49247849-fe56-442f-a828-2c562e59a4ef"
      unitRef="usd">5900000</us-gaap:ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="if6cae797bb3e4fd2861d574e8b857954_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE0NDU_74837347-fd88-4d29-89a3-9b0b6f25ceb1"
      unitRef="usd">3382000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="if1ff5906f4734040992a6b748f42d812_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE1NjE_1f13eb91-f1c2-47f6-9b6d-204a5f2a8622"
      unitRef="usd">447000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="if1ff5906f4734040992a6b748f42d812_I20200526"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE1OTY_e6705286-0ce2-4355-bb56-657841c8ff21"
      unitRef="usd">228000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i69142dd171a34505a0db9a07131e8fd5_I20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE2Mzk_538ec74e-643f-4d4a-8ccb-2d78a4435b7a"
      unitRef="usd">0</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i81afe5dc608943d5bc97a00174870022_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE2ODA_148578a5-d9d8-4880-ab09-1432b41af3c2"
      unitRef="usd">219000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90ZXh0cmVnaW9uOjc3NzFiNWEyOTIyMTRiMDhiMjFiMDE1NDk5ZDcwNjVmXzE5MTI_f7c749f9-32ae-413b-815f-7caefc87f3b2">&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 style="width:81.623%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.445%"/&gt;&lt;td style="width:0.1%"/&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 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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;3,137&#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;/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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,623&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,086&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;12,414&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzEtMi0xLTEtOTQ4NTM_70461dfb-1eb6-409f-ae72-7aceb69b8d8c"
      unitRef="usd">3137000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzItMi0xLTEtOTQ4NTM_02535bdc-67f9-4ead-bbae-32f3378cc0a3"
      unitRef="usd">2623000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzMtMi0xLTEtOTQ4NTM_95f86612-63ba-42bf-b77f-55a93dc8c4a5"
      unitRef="usd">2300000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzQtMi0xLTEtOTQ4NTM_e6cf788b-2438-4b54-b577-d35943494445"
      unitRef="usd">1995000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzUtMi0xLTEtOTQ4NTM_a9c5141a-951c-4259-a50f-06d40ecb2dfd"
      unitRef="usd">1273000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzYtMi0xLTEtOTQ4NTM_0368ffb2-3170-4070-9092-a7b6344bc1e2"
      unitRef="usd">1086000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xMzkvZnJhZzo3NzcxYjVhMjkyMjE0YjA4YjIxYjAxNTQ5OWQ3MDY1Zi90YWJsZTo1ZmFjMTU1NDAwNzg0MWVlYjM0NTc2YmE4MWJkZmRlOC90YWJsZXJhbmdlOjVmYWMxNTU0MDA3ODQxZWViMzQ1NzZiYTgxYmRmZGU4XzctMi0xLTEtOTQ4NTM_27f9640c-e63b-4e0b-b961-ac5d942dc309"
      unitRef="usd">12414000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzE4NA_1d72a205-70fd-4bb4-9afd-5bb2482024a0">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 style="width:64.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.908%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.057%"/&gt;&lt;td style="width:0.1%"/&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 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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred payments related to Sualab Co., Ltd. acquisition (1)&lt;/span&gt;&lt;/div&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;19,282&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;&#x2014;&#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;/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;Incentive 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;18,554&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,917&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Salaries and payroll taxes&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;8,121&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;7,191&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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;5,847&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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:700;line-height:100%"&gt;4,375&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;29,865&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,235&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;92,432&#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;/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) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent. The deferred payments are being recorded as compensation expense over the four-year period, and the accrued balance was reclassified from "Other Liabilities" to "Accrued expenses" on the Consolidated Balance Sheets in the fourth quarter of 2022 when the liability became current.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt"&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 style="width:81.209%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2020&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,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;3,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(3,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2021&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;5,427&#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;/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;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2022&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: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;4,375&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzE4Ng_7087c05d-aea8-444e-9b16-db6083c857d3">&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 style="width:64.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.908%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.057%"/&gt;&lt;td style="width:0.1%"/&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 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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred payments related to Sualab Co., Ltd. acquisition (1)&lt;/span&gt;&lt;/div&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;19,282&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;&#x2014;&#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;/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;Incentive 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;18,554&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,917&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Salaries and payroll taxes&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;8,121&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,519&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;7,191&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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;5,847&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,686&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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:700;line-height:100%"&gt;4,375&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;29,865&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,235&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;92,432&#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;/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) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent. The deferred payments are being recorded as compensation expense over the four-year period, and the accrued balance was reclassified from "Other Liabilities" to "Accrued expenses" on the Consolidated Balance Sheets in the fourth quarter of 2022 when the liability became current.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMS0xLTEtMTAyNjc3_d6f4c605-c625-4d4c-8001-992ec0260fd0"
      unitRef="usd">19282000</us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent>
    <us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMy0xLTEtMTAzODIw_01993d34-fbae-4491-afae-264e8ec1044a"
      unitRef="usd">0</us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMS0xLTEtMTExNTI2_6bee1377-012a-4703-a758-47b037effa0c"
      unitRef="usd">18554000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMy0xLTEtMTExNTI2_5306507d-cdcf-4681-8622-7873a4f4d0a9"
      unitRef="usd">37917000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedSalariesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMS0xLTEtOTQ4NTM_0b6abfad-b0b6-45f6-ab9c-ec3afb451140"
      unitRef="usd">8121000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedSalariesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzMtMy0xLTEtOTQ4NTM_af87c856-7905-401f-9173-771040b72593"
      unitRef="usd">8519000</us-gaap:AccruedSalariesCurrent>
    <cgnx:RetirementAllowance
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMS0xLTEtOTQ4NTM_a0320f1b-09ed-40f2-9f67-937d4f6430f4"
      unitRef="usd">7191000</cgnx:RetirementAllowance>
    <cgnx:RetirementAllowance
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzQtMy0xLTEtOTQ4NTM_461786b9-4e65-49da-8cdd-dee94b5d58f4"
      unitRef="usd">7572000</cgnx:RetirementAllowance>
    <us-gaap:AccruedVacationCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzYtMS0xLTEtMTAyNjcx_00c19693-c5c1-4a33-a7e3-1b431e539b9b"
      unitRef="usd">5847000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzYtMy0xLTEtMTAyNjcx_987eba16-9acf-442a-b2c1-6be7cd459f38"
      unitRef="usd">4686000</us-gaap:AccruedVacationCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzUtMS0xLTEtOTQ4NTM_c1d23fc7-f79f-4cae-8140-b73211c4fc34"
      unitRef="usd">4375000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzUtMy0xLTEtOTQ4NTM_ea866655-526b-40b8-aa12-eff5ceacefa8"
      unitRef="usd">5427000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzctMS0xLTEtOTQ4NTM_0e5d6ff8-7ead-42bb-9c97-a556e6163b5b"
      unitRef="usd">29865000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzctMy0xLTEtOTQ4NTM_eac80166-e7fa-419d-81e9-c431c79d73e5"
      unitRef="usd">28311000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzgtMS0xLTEtOTQ4NTM_c24b017e-6a0d-43f5-a78c-bb90cbba4990"
      unitRef="usd">93235000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTpjNzM4YzJkZWY0ODg0YmQ1OTY5YTk1ODhkYzI1ZGJmMC90YWJsZXJhbmdlOmM3MzhjMmRlZjQ4ODRiZDU5NjlhOTU4OGRjMjVkYmYwXzgtMy0xLTEtOTQ4NTM_6b80c7f1-e71f-4a52-be86-406ddfcb2765"
      unitRef="usd">92432000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzEyNjQ0MzgzNzIwNTkx_49ffd94a-68dc-417a-ab2f-d37e0d24d02e"
      unitRef="usd">24040000</us-gaap:AssetAcquisitionContingentConsiderationLiabilityCurrent>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90ZXh0cmVnaW9uOmU1MTk0OWY2ODVjZjQ5ODViZDRmZDEyMzEwMjM5OTExXzE3Mg_6cf46178-3b28-42fb-a70b-89ada874ae68">&lt;div style="margin-top:4pt"&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 style="width:81.209%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.591%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2020&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,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;3,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(3,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2021&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;5,427&#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;/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;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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, 2022&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: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;4,375&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ProductWarrantyAccrual
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzEtMS0xLTEtOTQ4NTM_39cb8203-b3d3-426d-b656-d9cbcd2fbc69"
      unitRef="usd">5406000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzItMS0xLTEtOTQ4NTM_234b82af-add2-4276-8596-acf75d3e8890"
      unitRef="usd">3256000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzMtMS0xLTEtOTQ4NTM_3553fb6a-d8f6-42f2-8f1b-76484977874c"
      unitRef="usd">3235000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzUtMS0xLTEtOTQ4NTM_f6cdff3c-9750-4ddc-bcf6-52bfafad3245"
      unitRef="usd">5427000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzYtMS0xLTEtOTQ4NTM_3b3889dd-356b-4ffa-b779-ae229c67a088"
      unitRef="usd">1876000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzctMS0xLTEtOTQ4NTM_ef3bae6f-a99f-4a4d-b4d8-52240f06ad94"
      unitRef="usd">2928000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDIvZnJhZzplNTE5NDlmNjg1Y2Y0OTg1YmQ0ZmQxMjMxMDIzOTkxMS90YWJsZTo3NzA5OTM4MTIxNWI0N2FlOTY3N2MwMjMzMDZiMGNlNC90YWJsZXJhbmdlOjc3MDk5MzgxMjE1YjQ3YWU5Njc3YzAyMzMwNmIwY2U0XzktMS0xLTEtOTQ4NTM_abd4681f-e7e5-406d-b879-005c13981259"
      unitRef="usd">4375000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzIyNzQ_498b1d9e-be7a-4c6d-b458-6e848a80cbd7">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, 2022, the Company had outstanding purchase orders totaling $50,942,000 to procure inventory from various vendors, due in part to higher inventory purchases in response to global supply chain constraints. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 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;A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2022, 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 $5,269,000, $547,000, and $1,311,000 in 2022, 2021, and 2020, 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: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;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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzEwNw_8e1a8c61-5104-40bd-9145-136ee393c90b"
      unitRef="usd">50942000</us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted>
    <us-gaap:OtherInventoryPurchasedGoods
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzU0OTc1NTgxNjQwOA_eaa1aad0-3761-41dc-80ea-04ba10401c84"
      unitRef="usd">5269000</us-gaap:OtherInventoryPurchasedGoods>
    <us-gaap:OtherInventoryPurchasedGoods
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzU0OTc1NTgxNjQ0NQ_770c91b7-f801-4dcd-9488-7d3bdd536c67"
      unitRef="usd">547000</us-gaap:OtherInventoryPurchasedGoods>
    <us-gaap:OtherInventoryPurchasedGoods
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNDUvZnJhZzo2ZGM4ZGIyM2MxNTU0Yzc2YjBiMmZiMzA1OGRkNjUyMy90ZXh0cmVnaW9uOjZkYzhkYjIzYzE1NTRjNzZiMGIyZmIzMDU4ZGQ2NTIzXzU0OTc1NTgxNjQ1NA_1a077943-f532-4f7a-ab1e-171c09b8066d"
      unitRef="usd">1311000</us-gaap:OtherInventoryPurchasedGoods>
    <cgnx:IndemnificationProvisionsTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTEvZnJhZzpiMjVmYzhiYzRiMzY0N2RjODU3ZTNjMjNjNmE2OTk3OS90ZXh0cmVnaW9uOmIyNWZjOGJjNGIzNjQ3ZGM4NTdlM2MyM2M2YTY5OTc5XzIzOTI_b2f0af89-2c5f-4e95-8c05-7fbad0b53fab">Indemnification Provisions&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;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: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 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzE0MTQ_fc738d1f-dfd6-4d63-8ed6-7172dc3dd6cb">Derivative InstrumentsThe Company&#x2019;s foreign currency risk management strategy is principally 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 &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;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: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 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 style="width:47.291%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.765%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2021&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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Euro&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;60,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 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;64,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;65,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 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;73,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;185,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;140,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;55,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,619&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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;Japanese Yen&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;700,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,281&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,213&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;1,590,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,238&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,355,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,155&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;3,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;1,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;1,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 style="width:15.274%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.888%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.358%"/&gt;&lt;td style="width:0.1%"/&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 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 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 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 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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2022&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 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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2022&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 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, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;27&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;479&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt"&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 style="width:18.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.826%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.562%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.826%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.709%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.814%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.562%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.394%"/&gt;&lt;td style="width:0.1%"/&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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00"&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 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c"&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 colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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, 2021&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 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;27&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;479&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;230&#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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 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;27&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;479&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;230&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 style="width:21.920%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:22.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.762%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.908%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.911%"/&gt;&lt;td style="width:0.1%"/&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 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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;9,823&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;4,262&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(12,308)&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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
    <us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1
      contextRef="i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzQxNg_4fb03e0d-5c61-4391-915a-df18f4554b8b">P3M</us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1>
    <us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzOTU_b0257c63-b6dd-4c75-a487-e60e402458a1">&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 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 style="width:47.291%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.765%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2021&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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Euro&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;60,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 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;64,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;65,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 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;73,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;185,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;140,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;55,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,619&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/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;Japanese Yen&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;700,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,281&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,213&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;1,590,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,238&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,355,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,155&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;3,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,552&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;1,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:400;line-height:100%"&gt;1,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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i7ecee748a7894aa6a34f131488958cd1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTEtMS0xLTk0ODUz_04d81f7c-8fec-4171-8269-81b936bb6947"
      unitRef="eur">60000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i7ecee748a7894aa6a34f131488958cd1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTItMS0xLTk0ODUz_d397f1b5-180a-46e6-8d30-37c86fd694e5"
      unitRef="usd">64174000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="iab989b088adc40f397c936be994f0791_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTQtMS0xLTk0ODUz_dfaf029f-5d64-40d1-b92b-75ffae9204f9"
      unitRef="eur">65000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="iab989b088adc40f397c936be994f0791_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzExLTUtMS0xLTk0ODUz_6754f227-1e47-487f-995c-eed02f6f7e7c"
      unitRef="usd">73748000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ie9c13de570644705af8147a91ba02f2e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTEtMS0xLTEwMDczNw_a7638651-d3da-4e62-9b93-c8abb875a6c2"
      unitRef="mxn">185000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ie9c13de570644705af8147a91ba02f2e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTItMS0xLTEwMDczNw_f7281e83-e140-4328-99c7-7f6ff65a417d"
      unitRef="usd">9480000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="iba6ff5ea086646528fb3be8a7fc8d97a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTQtMS0xLTEwMDczNw_c6f39b87-dce5-465b-9bea-beacf76c843d"
      unitRef="mxn">140000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="iba6ff5ea086646528fb3be8a7fc8d97a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTUtMS0xLTEwMDczNw_c980538d-a625-46ab-b097-7fb7c4a22e4f"
      unitRef="usd">6842000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i1988c41f6e6149c3a832fe97087a0a7d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTEtMS0xLTk0ODUz_5a9ffd70-9979-4341-b185-9605e8650f1e"
      unitRef="cny">55000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i1988c41f6e6149c3a832fe97087a0a7d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTItMS0xLTk0ODUz_68c59223-b500-4c3c-a1d2-2cfa05205efa"
      unitRef="usd">7619000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i7ad598b1eccf4536af708abf2a363022_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTQtMS0xLTk0ODUz_36581b85-c3bc-4f76-9b71-8da286c47321"
      unitRef="cny">54374000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i7ad598b1eccf4536af708abf2a363022_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzEyLTUtMS0xLTk0ODUz_99b918ca-f870-4f91-8684-34ce46963b77"
      unitRef="usd">8500000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i98df32958b27455ca343eefe9e81c798_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTEtMS0xLTk0ODUz_d0a8e326-ca3c-484b-89f2-232274594dac"
      unitRef="jpy">700000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i98df32958b27455ca343eefe9e81c798_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTItMS0xLTk0ODUz_7c837066-69ee-470e-a44c-63e77c4f47d9"
      unitRef="usd">5281000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="icffc050944dd416487d7e4ecc04e965f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTQtMS0xLTk0ODUz_ad45dddc-4c38-46fd-a8a9-9af82516275e"
      unitRef="jpy">600000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="icffc050944dd416487d7e4ecc04e965f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE0LTUtMS0xLTk0ODUz_6487a80b-8e47-409b-b6f4-2246d9d0f00a"
      unitRef="usd">5213000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ib798cddce68d41218df3982eeea19bd1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTEtMS0xLTEwMDc0Mw_3898e12a-23ee-4f06-bc7c-4c84d8abea5d"
      unitRef="huf">1590000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ib798cddce68d41218df3982eeea19bd1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTItMS0xLTEwMDc0Mw_eced05dc-7256-4ae4-8f93-0a3a19cd00b1"
      unitRef="usd">4238000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ic1a57166d0ca4d52be74fad8e241edf8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTQtMS0xLTEwMDc0Mw_ade2d1f7-8aae-4696-be3f-aa3dc1624d34"
      unitRef="huf">1355000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="ic1a57166d0ca4d52be74fad8e241edf8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTUtMS0xLTEwMDc0Mw_b92fab00-226b-47a6-b456-02d3eca4352a"
      unitRef="usd">4155000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i587de7e154cd4fcbbd086d02ae014d98_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTEtMS0xLTk0ODUz_bfd24b85-d56d-463d-ad3b-373be1035f8d"
      unitRef="gbp">3445000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i587de7e154cd4fcbbd086d02ae014d98_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTItMS0xLTk0ODUz_217e4df4-b848-4972-8c06-36b8d9238b9b"
      unitRef="usd">4161000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i49e51c3d3b624282bd5f887efb5825c4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTQtMS0xLTk0ODUz_0dbf43a4-f0ee-4813-b66d-bdc5a6f97261"
      unitRef="gbp">3370000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i49e51c3d3b624282bd5f887efb5825c4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE1LTUtMS0xLTk0ODUz_9693a703-fc42-4661-af3f-28980ad7f034"
      unitRef="usd">4552000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i21885da1c6cc488cb5c733d3f6f8cb47_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTEtMS0xLTk0ODUz_ee20d29a-c47c-4579-ac78-17ed5b8179da"
      unitRef="cad">1730000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i21885da1c6cc488cb5c733d3f6f8cb47_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTItMS0xLTk0ODUz_57e06be5-ea6c-4acb-8798-e929db212366"
      unitRef="usd">1278000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i344daace626040eab0b599ffda6fa09f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTQtMS0xLTk0ODUz_93107a15-8ddf-4213-a197-0088222b5c49"
      unitRef="cad">1480000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i344daace626040eab0b599ffda6fa09f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE3LTUtMS0xLTk0ODUz_39e80c80-486c-4b53-b09c-304f2b2d6837"
      unitRef="usd">1167000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i2c036298f54845b2ab2a5600c55fdddd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTEtMS0xLTEwMDc1Mw_16e8d427-1360-4ab1-a0cf-e6d298d21c8b"
      unitRef="chf">1120000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i2c036298f54845b2ab2a5600c55fdddd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTItMS0xLTEwMDc1NQ_f20e027e-d4bd-4a89-b5b3-771d9446ec56"
      unitRef="usd">1218000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i2111da417047432fb42541c6d0d9488e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTQtMS0xLTEwMDc1Nw_ec0c4b39-c40a-4b9b-9932-ae95030bb0fc"
      unitRef="chf">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount
      contextRef="i2111da417047432fb42541c6d0d9488e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjZWNjYzFkMTlkZGM0NDVmYTU3ZjU0ZTQ0ZjQ3NmQ0Yi90YWJsZXJhbmdlOmNlY2NjMWQxOWRkYzQ0NWZhNTdmNTRlNDRmNDc2ZDRiXzE4LTUtMS0xLTEwMDc2MQ_9b71acba-74b5-43db-9e93-ad90887cbc9c"
      unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzOTE_53838a4f-a1ce-4425-94f9-2d4c8ed8fb9e">&lt;div style="margin-top:4pt;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 style="width:15.274%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.204%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.888%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.358%"/&gt;&lt;td style="width:0.1%"/&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 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 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 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 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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2022&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 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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2022&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 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, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;27&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;479&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock>
    <us-gaap:DerivativeAssets
      contextRef="i20009c9acfef4520a2b96da0be7ba062_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtMy0xLTEtOTQ4NTM_2645923f-7b51-40e3-a7cb-0aaf4e7914f1"
      unitRef="usd">27000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="i68b5dd94706b4891befcd809653efdc4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtNS0xLTEtOTQ4NTM_dcfd7601-b04e-42b9-9568-74a5fe4bb578"
      unitRef="usd">39000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="i20009c9acfef4520a2b96da0be7ba062_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtOS0xLTEtOTQ4NTM_d694b21e-6a3c-4934-af1e-bd7ca5163f58"
      unitRef="usd">479000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i68b5dd94706b4891befcd809653efdc4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpjM2E3Yjk4NmFhNGQ0M2NiYjczODcyYWQzNTk4YzExNC90YWJsZXJhbmdlOmMzYTdiOTg2YWE0ZDQzY2JiNzM4NzJhZDM1OThjMTE0XzYtMTEtMS0xLTk0ODUz_00235494-1989-435d-bf29-d9b46979e0d6"
      unitRef="usd">230000</us-gaap:DerivativeLiabilities>
    <us-gaap:OffsettingAssetsTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzODY_63285a22-daa4-4407-8d4c-cb839d7534c2">&lt;div style="margin-top:4pt"&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 style="width:18.108%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.826%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.562%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.826%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.709%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.814%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.562%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.394%"/&gt;&lt;td style="width:0.1%"/&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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_86c9de28-8ece-4d5d-971f-f1d89e235aec"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtMC0xLTEtMTE0ODE0_bf549d56-05c7-477a-9715-332c29076c00"&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 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_64d230dd-0249-441e-8868-aed0e428f5b2"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzAtNi0xLTEtMTE0NzY4_f3f16b23-94f6-4858-b513-8c65d3fbb92c"&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 colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&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, 2021&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 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;27&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;479&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;230&#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;/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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 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;27&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;479&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;230&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OffsettingAssetsTableTextBlock>
    <us-gaap:DerivativeFairValueOfDerivativeAsset
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItMi0xLTEtOTQ4NTM_cdb9ecb1-30f2-42cf-bf60-11d5000b1780"
      unitRef="usd">27000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeAsset
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItNC0xLTEtOTQ4NTM_dba0de8c-9a13-48b5-9c18-1d666c7930ad"
      unitRef="usd">39000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItOC0xLTEtOTQ4NTM_65c4f8cc-8a79-4348-adae-1a6c6ab3fb3b"
      unitRef="usd">479000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeFairValueOfDerivativeLiability
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzItMTAtMS0xLTk0ODUz_e19c2c1f-aad5-497b-adb4-caa9cde4fb6f"
      unitRef="usd">230000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtMi0xLTEtOTQ4NTM_030129fc-7161-4d79-a169-e68fef76c21a"
      unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtNC0xLTEtOTQ4NTM_5803bd1c-5dbd-4b8a-9c6c-6d5e89ca4225"
      unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtOC0xLTEtOTQ4NTM_e667f170-a277-4cbb-b885-1ed35efcde92"
      unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzMtMTAtMS0xLTk0ODUz_abaafcfd-f6ce-4811-8c0a-c6660880b377"
      unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeAssets
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtMi0xLTEtOTQ4NTM_ddab604f-96f5-4191-82fd-7d7ede647770"
      unitRef="usd">27000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtNC0xLTEtOTQ4NTM_6f083109-6748-44ec-9845-498fb382ed4e"
      unitRef="usd">39000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtOC0xLTEtOTQ4NTM_cef02bfe-89b7-4755-af95-6698ca72be86"
      unitRef="usd">479000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTo4YTE4NjA1M2VhMjQ0MjgxODk4NDZjNTIxMDlhMzQxMy90YWJsZXJhbmdlOjhhMTg2MDUzZWEyNDQyODE4OTg0NmM1MjEwOWEzNDEzXzQtMTAtMS0xLTk0ODUz_3a70fe1d-37f4-41a1-a455-1676f8c90102"
      unitRef="usd">230000</us-gaap:DerivativeLiabilities>
    <us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90ZXh0cmVnaW9uOjBjMjM3MmFjNzllNDQyNzc5YTA1ZjM0Zjk0NDYyZGM0XzEzODg_635d9363-8532-42bc-aef2-a06ea0ceaf14">&lt;div style="margin-top:4pt;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 style="width:21.920%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:22.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.762%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.908%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.911%"/&gt;&lt;td style="width:0.1%"/&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 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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;9,823&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;4,262&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(12,308)&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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpiMjY3YmNkMzc4Yzk0MGEzOGMzNzBkNDk3YzBkMDhmYi90YWJsZXJhbmdlOmIyNjdiY2QzNzhjOTQwYTM4YzM3MGQ0OTdjMGQwOGZiXzExLTMtMS0xLTk0ODUz_cefea150-5877-4f16-9523-c9142ced5aa5"
      unitRef="usd">9823000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="i18f2b093d8ef4faeb9106cba76769131_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpiMjY3YmNkMzc4Yzk0MGEzOGMzNzBkNDk3YzBkMDhmYi90YWJsZXJhbmdlOmIyNjdiY2QzNzhjOTQwYTM4YzM3MGQ0OTdjMGQwOGZiXzExLTUtMS0xLTk0ODUz_14cff13c-420f-4bf2-8ec1-c445406c481e"
      unitRef="usd">4262000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet
      contextRef="ia0409d6ec51840b99360b72efdabca9b_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTQvZnJhZzowYzIzNzJhYzc5ZTQ0Mjc3OWEwNWYzNGY5NDQ2MmRjNC90YWJsZTpiMjY3YmNkMzc4Yzk0MGEzOGMzNzBkNDk3YzBkMDhmYi90YWJsZXJhbmdlOmIyNjdiY2QzNzhjOTQwYTM4YzM3MGQ0OTdjMGQwOGZiXzExLTctMS0xLTk0ODUz_641b565f-2a3d-414f-abee-ffaca7fb25d6"
      unitRef="usd">-12308000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTc_2cb01995-63ce-42be-ad74-930b77e48e6a">Revenue Recognition&lt;div style="margin-top:6pt"&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 style="width:61.216%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.630%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.826%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.630%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.632%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2021&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 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;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;390,573&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;435,220&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;310,027&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;234,643&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;227,447&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;153,427&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,999&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;123,919&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;1,006,090&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,037,098&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;811,020&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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: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 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 style="width:61.125%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.466%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.824%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.613%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.824%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.616%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2021&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 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;2020&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 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;848,153&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;889,253&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;674,830&#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;/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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;147,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;136,190&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;1,006,090&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,037,098&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;811,020&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="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: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;Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $14,578,000 and $10,854,000 as of December 31, 2022 and 2021, respectively. &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%;text-decoration:underline"&gt;Accounts Receivable, Contract Assets, and Contract Liabilities&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;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 for primarily 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: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 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 style="width:79.341%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.459%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2020&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;831&#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;/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;&#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;/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;(55)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;&#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;/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, 2021&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;776&#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;/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;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;/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;(237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;&#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;/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-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;730&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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 style="width:79.398%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.402%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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, 2020&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;21,274&#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;/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;31,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(17,403)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(35)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2021&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;35,743&#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;/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;39,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(31,520)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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,512)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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-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;40,787&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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, as our contracts have an original expected duration of less than one year.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTQ_49a626d9-dd6e-48ff-bf0a-d582e6db5cfd">&lt;div style="margin-top:6pt"&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 style="width:61.216%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.630%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.826%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.630%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.632%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2021&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 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;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 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;390,573&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;435,220&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;310,027&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;234,643&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;227,447&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;153,427&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,999&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;123,919&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;1,006,090&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,037,098&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;811,020&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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: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 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 style="width:61.125%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.466%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.824%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.613%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.824%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.616%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2021&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 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;2020&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 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;848,153&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;889,253&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;674,830&#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;/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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;147,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;136,190&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;1,006,090&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,037,098&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;811,020&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib70b837829b5456a899f0f811c0f555d_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzItMi0xLTEtOTQ4NTM_25358ade-e592-4088-bf78-f65356a96fe0"
      unitRef="usd">390573000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iae85366661da4de081ce1375ed5e731e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzItNC0xLTEtOTQ4NTM_a7736367-bc0b-475e-99ad-e3d93e184374"
      unitRef="usd">435220000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib9e2b52ed5bb45ef8c66a470bb6a342a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzItNi0xLTEtOTQ4NTM_4c0b9fef-45b7-4b27-a19e-adfec383df9b"
      unitRef="usd">310027000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i81c26265146a4e0cabd3a5ad1dc520f4_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzMtMi0xLTEtOTQ4NTM_ef312494-b374-40e5-a270-fb48c8587d02"
      unitRef="usd">234643000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i81e4d0ae1cdb4710abb92bad9ac6186e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzMtNC0xLTEtOTQ4NTM_19ab4e0e-4342-48b2-9856-1a0e80f95ccf"
      unitRef="usd">247744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie55ae60220f64f2a9333aff7cb5e7e79_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzMtNi0xLTEtOTQ4NTM_d2e5407b-0e15-474a-9403-755719d3fea6"
      unitRef="usd">208787000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ifacc8a191ed34cc3956d7cb3c18bfb50_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzQtMi0xLTEtOTQ4NTM_b2c22aea-bc78-4054-84d9-c575473f5752"
      unitRef="usd">227447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iad4f830115f54196885c8808f5f26002_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzQtNC0xLTEtOTQ4NTM_d4737acb-b1fc-4516-8cea-38d788955938"
      unitRef="usd">200135000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia5f10baf3e6e431791d90b042d2b7dbe_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzQtNi0xLTEtOTQ4NTM_5a58c6bc-8dd0-486e-a2e4-c64a5fc1a5f0"
      unitRef="usd">168287000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id9705c408ea24703bb700064bc764cbb_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzUtMi0xLTEtOTQ4NTM_ab789876-1fac-47d5-adfe-c34d133a5dc5"
      unitRef="usd">153427000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1d373b49f6174306934e3595c281e1e1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzUtNC0xLTEtOTQ4NTM_a056c314-cfad-42c4-b17d-4f6450fbbf50"
      unitRef="usd">153999000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia901fbb0e0df41bdab322f5b54ac1bad_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzUtNi0xLTEtOTQ4NTM_4b5bd113-b633-496d-8acf-3eb3486356f9"
      unitRef="usd">123919000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzYtMi0xLTEtOTQ4NTM_615c2084-9d5c-44d7-82cf-f4c65a1fb5b3"
      unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzYtNC0xLTEtOTQ4NTM_95f029c3-5b6e-44b8-b9b0-a2f2678fcdd3"
      unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTphZTVhMjZiNmVhOGE0NTA3YjA1NjJhZmZiNWEyMmU5My90YWJsZXJhbmdlOmFlNWEyNmI2ZWE4YTQ1MDdiMDU2MmFmZmI1YTIyZTkzXzYtNi0xLTEtOTQ4NTM_8b75625b-f35c-4ce2-b6e4-90b77ff15018"
      unitRef="usd">811020000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i18aac435bfc44c8d91524b6f7ac4c4bd_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzItMi0xLTEtOTQ4NTM_f25fb8f0-e37f-4a30-b684-9fe0e488cbbc"
      unitRef="usd">848153000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9b83fa1334a04a0a9f161d83664e05ad_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzItNC0xLTEtOTQ4NTM_e90e6659-5c42-4e0a-8b6f-7473073be6dd"
      unitRef="usd">889253000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idc7cf366ab9e4fc58b28582ef840dcbf_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzItNi0xLTEtOTQ4NTM_ddcddbfc-7da6-408e-a12d-29516a46d7a7"
      unitRef="usd">674830000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ibdd9b5e3e33e412b94c27b42dbaf106f_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzMtMi0xLTEtOTQ4NTM_ebb27807-aa7e-4535-9280-ec06d7646460"
      unitRef="usd">157937000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i52080a684e8546c28f54f8515153e8bc_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzMtNC0xLTEtOTQ4NTM_debbfa0a-814c-4750-9bc1-52f83c4aaaf2"
      unitRef="usd">147845000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i840dd08d66f74017901da8e43d8c6597_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzMtNi0xLTEtOTQ4NTM_30d6ca9d-9569-465e-a783-14112c921014"
      unitRef="usd">136190000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzQtMi0xLTEtOTQ4NTM_f5d44d51-774f-424c-abca-648e00c44a2a"
      unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzQtNC0xLTEtOTQ4NTM_a9eaa6c7-b5b6-4880-99d3-a213cb58fa32"
      unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjNzBlZGNiNTQwODE0OGI1Yjc2NWU5ZGMwM2NkNjBkZS90YWJsZXJhbmdlOmM3MGVkY2I1NDA4MTQ4YjViNzY1ZTlkYzAzY2Q2MGRlXzQtNi0xLTEtOTQ4NTM_9d583641-7469-4a14-9101-9ec8e02cbc15"
      unitRef="usd">811020000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CapitalizedContractCostGross
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzQ0OA_48ed358f-415a-4e83-9812-39c0e0623e05"
      unitRef="usd">14578000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:CapitalizedContractCostGross
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzQ1NQ_f87bb42f-f975-4e5b-851f-769323053d19"
      unitRef="usd">10854000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTI_96784a90-77c2-4744-953f-6840f77df682">&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 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 style="width:79.341%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.459%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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, 2020&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;831&#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;/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;&#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;/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;(55)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;&#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;/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, 2021&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;776&#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;/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;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;/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;(237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;&#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;/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-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;730&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzEtMS0xLTEtOTQ4NTM_90091250-2f6b-476c-a53c-779a1fff4975"
      unitRef="usd">831000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzItMS0xLTEtOTQ4NTM_15cf172d-dd0e-4bca-a608-8946b9961876"
      unitRef="usd">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzMtMS0xLTEtOTQ4NTM_29c81dbb-3981-4a45-ba6f-b106b78f9bc6"
      unitRef="usd">55000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzQtMS0xLTEtOTQ4NTM_5a4c1365-b559-4e10-8603-3da2b33d4c00"
      unitRef="usd">0</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzUtMS0xLTEtOTQ4NTM_9c79065f-ee0d-4efd-bcaf-0d82ff0d84fa"
      unitRef="usd">776000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzYtMS0xLTEtOTQ4NTM_e2101032-5207-49cc-b3dc-00039f7622d2"
      unitRef="usd">191000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzctMS0xLTEtOTQ4NTM_5d980560-c567-42be-8b14-eb6764256110"
      unitRef="usd">237000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzgtMS0xLTEtOTQ4NTM_fb1c4271-33a6-4d87-8d0d-3962ddc95c99"
      unitRef="usd">0</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZTpjN2Y2NGRjODBjZWI0Y2UxOWNjMjI4NjU0MTk5N2UwOC90YWJsZXJhbmdlOmM3ZjY0ZGM4MGNlYjRjZTE5Y2MyMjg2NTQxOTk3ZTA4XzktMS0xLTEtOTQ4NTM_bdd8e029-ff34-4a69-b147-3808ffa944b2"
      unitRef="usd">730000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90ZXh0cmVnaW9uOmNhYmM2YWNhMWJkNjRmM2Q4OWFmZDgwZDg4NjQ1MjkyXzE3MTY_008aa13b-f151-46f8-aa2c-f0fdfb4616d3">&lt;div style="margin-top:3pt"&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 style="width:79.398%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.402%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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, 2020&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;21,274&#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;/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;31,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(17,403)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(35)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2021&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;35,743&#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;/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;39,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(31,520)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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,512)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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-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;40,787&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzEtMS0xLTEtOTQ4NTM_69ffada3-dd2c-42a6-a93d-ece738ac82aa"
      unitRef="usd">21274000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzItMS0xLTEtOTQ4NTM_6fb99409-b279-4ebe-8d9f-56df84e917b2"
      unitRef="usd">31907000</cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease>
    <cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzMtMS0xLTEtOTQ4NTM_991b833a-5552-447b-8746-a892fd631a15"
      unitRef="usd">17403000</cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized>
    <cgnx:ContractLiabilityForeignExchangeRateChanges
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzQtMS0xLTEtOTQ4NTM_bc3257e0-ea70-452d-bdd4-3fdabdf03c97"
      unitRef="usd">-35000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzUtMS0xLTEtOTQ4NTM_ef157332-d3c1-4669-9bab-63c024ddb9dd"
      unitRef="usd">35743000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzYtMS0xLTEtOTQ4NTM_20315df2-0eae-4b99-b792-a899d9626071"
      unitRef="usd">39076000</cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease>
    <cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzctMS0xLTEtOTQ4NTM_f94227b7-4d22-451d-a2fa-e84e03edc184"
      unitRef="usd">31520000</cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized>
    <cgnx:ContractLiabilityForeignExchangeRateChanges
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzgtMS0xLTEtOTQ4NTM_9d332541-3610-4c1e-80ed-18b8334b5d0e"
      unitRef="usd">-2512000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNTcvZnJhZzpjYWJjNmFjYTFiZDY0ZjNkODlhZmQ4MGQ4ODY0NTI5Mi90YWJsZToxZGZhYzk1YjFmYjM0Yjk0YTc3OTE1ODY1OTJlYTgzOS90YWJsZXJhbmdlOjFkZmFjOTViMWZiMzRiOTRhNzc5MTU4NjU5MmVhODM5XzktMS0xLTEtOTQ4NTM_812cf063-339c-482c-9dbc-8ae352ed9bc7"
      unitRef="usd">40787000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI4MDA_b492e657-1b04-4520-a3f3-90196a25a679">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:9pt"&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: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 April 25, 2018, the Company's shareholders approved an amendment to the Company's Articles of Organization to increase the authorized number of shares of $.002 par value common stock from 200,000,000 to 300,000,000. In addition, on April 25, 2018, the Company's shareholders approved an amendment and restatement of the Company's 2001 General Stock Option Plan which provides for an increase in the number of available shares by 10,000,000.&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;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 October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 1,215,000 shares at a cost of $51,036,000 in 2020, and 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 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;On March 12, 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 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;On March 3, 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 total cost of $87,314,000 in 2022, leaving a remaining balance of $412,686,000. 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:9pt"&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.055 per share in the first, second, and third quarters of 2020, $0.060 per share in the fourth quarter of 2020 and in the first, second, and third quarters of 2021, and $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022. The dividend was increased to $0.070 per share in the fourth quarter of 2022. Also, in the fourth quarter of 2020, an additional special cash dividend of $2.00 per share was declared and paid. &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;Total dividends paid were $45,921,000 in 2022, $43,263,000 in 2021, and $390,508,000 in 2020, which included $351,428,000 paid for the special cash dividend. 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="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzY3_803a541b-bb99-4706-a421-d2f678c63225"
      unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwNA_8faa0198-cf90-4843-972c-b751b1e904a8"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzMwNA_1ef3b378-9d27-499f-8f4e-63dd20ae3871"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ib921dcc1cc8d4e88a94ac95519191beb_I20160427"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzMzNQ_cce7126a-65c4-4b66-85fb-eff6cfb04dd9"
      unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i6d16014c79974e6fb04ffdb4c2528fbe_I20180425"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzM0MQ_355534ab-680c-4f9a-8489-915e4d045e02"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i7dd30073d67c43e2812004d92b58a950_I20160428"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU1OA_eec5333b-abc8-4ef4-8082-3bfdf142aa40"
      unitRef="shares">10000000</us-gaap:CommonStockSharesAuthorized>
    <cgnx:VoteEntitledForEachCommonShareOutstanding
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzYzMQ_1c19c8b9-4058-4929-95a4-69f06b528d3a"
      unitRef="vote">1</cgnx:VoteEntitledForEachCommonShareOutstanding>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="ia3238462e92a44c0ae2e712757ed9221_I20181029"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzkxMQ_01c907f5-2217-477c-bc47-20cc01f899f3"
      unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="ie6281c7cdeee4c578f9ad7920151d770_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwMzc_3fff886a-4fe0-4518-b0da-e8f59b9a6775"
      unitRef="shares">1215000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ie6281c7cdeee4c578f9ad7920151d770_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwNjA_a47acb58-a7df-4f77-b1ef-e747a1697791"
      unitRef="usd">51036000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i20998dd8746d49b29fd688382c97aeb7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwNzY_c4538391-d8a6-47f3-b651-087e692c6a46"
      unitRef="shares">957000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i20998dd8746d49b29fd688382c97aeb7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEwOTk_7eb609e8-a120-4c45-964a-887695fe0b88"
      unitRef="usd">78652000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="ifab0fd91112c44ebacbc15ea89678db9_I20200312"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEyNTI_9cc53012-afd7-46c5-a7bc-55245922c12d"
      unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEzNDE_e7bd26f5-207e-47b5-8e02-bce5867f66db"
      unitRef="shares">1060000</us-gaap:StockRepurchasedDuringPeriodShares>
    <cgnx:StockRepurchasedDuringPeriodSharesNotYetSettled
      contextRef="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzEzNjI_37be99b9-f17b-4e19-acd1-b94f30b897d8"
      unitRef="shares">5000</cgnx:StockRepurchasedDuringPeriodSharesNotYetSettled>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ia335f3a9f8ce4216a6eb57d32ca9da44_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzE0MzU_377ad537-412f-4c85-bc8e-6540bb08be9c"
      unitRef="usd">83000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i1c6c593e915b44a68ec713b3fbb6f688_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzU1Ng_03ee4600-734f-4ea8-ba79-c06c305866f3"
      unitRef="shares">1677000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i1c6c593e915b44a68ec713b3fbb6f688_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzU1Nw_a73d390e-9e9a-4c5d-9646-a82b39f8a0fd"
      unitRef="usd">117000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="ie6e2d81d493141e893a1652480ab4ceb_I20220303"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzUxNg_44734474-d8a1-450e-b4a1-41c80b4fa921"
      unitRef="usd">500000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="i60d41a5c281445d585b275a0175e25d8_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzU0MA_525cfd12-75a1-4db6-8f98-138c44158eab"
      unitRef="shares">1682000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue
      contextRef="i60d41a5c281445d585b275a0175e25d8_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzUzNg_941f77b4-21d3-4cdb-a41a-88d57789de6b"
      unitRef="usd">87314000</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="i242da384c8724307bae1667f3b953759_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNzUzNw_689f03c7-26fc-49d9-a5aa-7256e1b2d46d"
      unitRef="usd">412686000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i018c267db8b54cdfacef801a78c54b1c_D20200101-20200927"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzE5ODI_3edcb1ca-057e-4d5d-b216-2e8000203be0"
      unitRef="usdPerShare">0.055</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="ifea9b05d219041a59056b8419ba26427_D20200928-20211003"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIwNDU_6aaa7162-cd04-4fc5-a4c9-4432fdaf3622"
      unitRef="usdPerShare">0.060</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="i59d6aaa50cca4cfc8c89677ea2083144_D20211004-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIxNDY_5f37d2fb-9b89-4e2d-baac-05e1fc3c0bea"
      unitRef="usdPerShare">0.065</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="ifeda0162266f40cd80c621dc7f7da27c_D20221003-20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIyNzM_580a0862-cfa3-4687-ae96-88c4b6729493"
      unitRef="usdPerShare">0.070</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareDeclared
      contextRef="iaa0536bb7dff46ebb738c081718a9e47_D20200928-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzIzOTM_8e3b601d-4c0f-4fc7-8ffa-9f1f7c283346"
      unitRef="usdPerShare">2.00</us-gaap:CommonStockDividendsPerShareDeclared>
    <us-gaap:PaymentsOfDividends
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI0NTY_f049f406-0135-4306-b1ca-8f2f2b14091c"
      unitRef="usd">45921000</us-gaap:PaymentsOfDividends>
    <us-gaap:PaymentsOfDividends
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI0Njg_8cd10da2-7c5d-4605-b84a-4784a3150556"
      unitRef="usd">43263000</us-gaap:PaymentsOfDividends>
    <us-gaap:PaymentsOfDividends
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzI1Mzg_2f31fd38-daec-4451-a2f2-a945d7ed354a"
      unitRef="usd">390508000</us-gaap:PaymentsOfDividends>
    <us-gaap:PaymentsOfDividends
      contextRef="ib4f96f1570614880a47ab7de0dda2e5c_D20201228-20201228"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjAvZnJhZzpiMjI3Y2JmMmFmNjA0YjYxOWQ0YTFlNzU1YTFmZmQ4Yi90ZXh0cmVnaW9uOmIyMjdjYmYyYWY2MDRiNjE5ZDRhMWU3NTVhMWZmZDhiXzU0OTc1NTgxNjg4MQ_eb4b45f0-4b83-4259-be61-bf47c74bb41c"
      unitRef="usd">351428000</us-gaap:PaymentsOfDividends>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5ODI_855aedc4-793b-4f49-9a62-0dc3a778ec89">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"). As of December&#160;31, 2022, the Company had 13,746,000 shares available for grant 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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQxOQ_c6e18e1b-cdd3-47f6-b8c9-e6aa92ec6c90"&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:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTUyMw_6d2dc99c-b10e-466b-8589-3aaaaf893c81"&gt;three&lt;/span&gt; or four years of continuous employment or incrementally over such &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU3NA_94a4b7d7-3177-48cc-8502-c9b251159bed"&gt;three&lt;/span&gt; or &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU1Mg_549c1e4c-b873-4d43-b5af-c44d64bbde49"&gt;four&lt;/span&gt; year periods. PRSUs generally vest upon &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTU3MQ_059c1591-f5c2-4f6e-9f51-65b36f7301c1"&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 style="width:43.409%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.226%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 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 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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2021&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;7,610&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;49.38&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&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,418&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59.63&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(365)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(196)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Outstanding as of December 31, 2022&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;8,467&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;51.56&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;6.13&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;31,327&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;Exercisable as of December 31, 2022&lt;/span&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;4,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-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;44.71&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;4.94&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;31,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:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Options vested or expected to vest as of&#160;&lt;br/&gt;&#160;December 31, 2022 (1)&lt;/span&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;8,038&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;51.10&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;6.01&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;31,224&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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"&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 style="width:54.847%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.996%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.143%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.146%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2020&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;2.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;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 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.3&#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 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.4&#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.44&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.27&#160;&lt;/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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.41&#160;&lt;/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;37&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;5.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;6.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;6.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt"&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"&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:9pt"&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;Generally, the current dividend yield is 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:9pt"&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:9pt"&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 $21.39 in 2022, $33.79 in 2021, and $19.62 in 2020.&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 total intrinsic value of stock options exercised was $8,424,000 in 2022, $80,369,000 in 2021, and $166,796,000 in 2020. The total fair value of stock options vested was $41,497,000 in 2022, $45,328,000 in 2021, and $45,998,000 in 2020.&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;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 style="width:62.496%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.808%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2021&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;823&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;65.26&#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;/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;715&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(192)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(77)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.65&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Nonvested as of December 31, 2022&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;1,269&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;61.74&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 is 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 $58.06 in 2022, $87.03 in 2021, and $52.09 in 2020. There were 192,000 RSUs that vested in 2022, 16,000 RSUs that vested in 2021, and no RSUs that vested in 2020.&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;Performance Restricted Stock Units (PRSUs)&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 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 style="width:65.420%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.712%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.838%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2021&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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;/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;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;Nonvested as of December 31, 2022&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;33&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;62.49&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;No PRSUs were granted or vested during the years ended December 31, 2021 and December 31, 2020.&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 fair value of PRSUs is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant.&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;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 two groups: one consisting of senior management and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of 7% to stock-based awards for senior management and a rate of 12% 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 an increase to compensation expense of $1,536,000 in 2022, a decrease to compensation expense of $255,000 in 2021, and an increase to compensation expense of $1,787,000 in 2020.&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, 2022, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $56,694,000, which is expected to be recognized over a weighted-average period of 1.51 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 $54,505,000 and $9,540,000, respectively, in 2022, $43,774,000 and $6,764,000, respectively, in 2021, and $42,661,000 and $6,569,000, respectively, in 2020. Stock-based compensation expense recognized in 2020 included credits of $1,401,000 relating to grants cancelled as a result of the Company's workforce reduction in the second quarter of 2020. No compensation expense was capitalized in 2022, 2021, or 2020.&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 style="width:51.176%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.320%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2020&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;2,016&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,345&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,365&#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;/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;17,693&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;34,796&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,909&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;54,505&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;43,774&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;42,661&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="i22b0d598b4fe4da1a5dd6844d5ee95d2_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIxOQ_08e989b4-733d-45af-81e0-58050f69e456"
      unitRef="shares">13746000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i70d17755323542f395648f6e1a2b02ef_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQyNQ_560bc457-5c87-447f-a20b-1aa95f88cf38">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cgnx:ExpirationPeriodOfStockOptionPlan
      contextRef="id4860aff35104dc9a6211278167eb085_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzQ3MA_915abb6a-130f-456a-ae43-925aa54a2817">P10Y</cgnx:ExpirationPeriodOfStockOptionPlan>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i394340cf869a431da92e0d5b7725e378_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzUxOQ_c75aef80-6909-4a26-9f97-1df0a3377040">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5NTQ_3451040d-0ffb-4592-a4c5-12a17844c205">&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 style="width:43.409%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.223%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.226%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 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 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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2021&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;7,610&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;49.38&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&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,418&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59.63&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(365)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33.58&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(196)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Outstanding as of December 31, 2022&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;8,467&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;51.56&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;6.13&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;31,327&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;Exercisable as of December 31, 2022&lt;/span&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;4,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-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;44.71&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;4.94&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;31,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:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Options vested or expected to vest as of&#160;&lt;br/&gt;&#160;December 31, 2022 (1)&lt;/span&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;8,038&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;51.10&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;6.01&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;31,224&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzEtMS0xLTEtOTQ4NTM_94290911-3cbc-4412-88e3-4364dd758e71"
      unitRef="shares">7610000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzEtMy0xLTEtOTQ4NTM_a6a5ae08-bdad-45a1-a63e-8fac885b5c9f"
      unitRef="usdPerShare">49.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzItMS0xLTEtOTQ4NTM_b6716897-dbcd-40d6-9cbd-5d84e92f86af"
      unitRef="shares">1418000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzItMy0xLTEtOTQ4NTM_b6ee6182-afd2-4089-afc7-7ba5b3c8a854"
      unitRef="usdPerShare">59.63</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzMtMS0xLTEtOTQ4NTM_23b27bfa-4344-4c35-bbfc-b98bfcceeab0"
      unitRef="shares">365000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzMtMy0xLTEtOTQ4NTM_5cdf56fc-725b-415e-be44-e1c166ae4d6a"
      unitRef="usdPerShare">33.58</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzQtMS0xLTEtOTQ4NTM_525b7f0e-8b69-401a-9c46-a937816ac6c6"
      unitRef="shares">196000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzQtMy0xLTEtOTQ4NTM_a132deba-5720-4368-9211-1108f368b4a7"
      unitRef="usdPerShare">58.90</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtMS0xLTEtOTQ4NTM_f78d2e2f-ba97-414a-a18c-f5648b5f9576"
      unitRef="shares">8467000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtMy0xLTEtOTQ4NTM_ea9dc202-1411-4073-8ecd-6ef1634d1e08"
      unitRef="usdPerShare">51.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtNS0xLTEtOTQ4NTM_3c427abb-1a14-49c9-99b6-3e45d78a9972">P6Y1M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzUtNy0xLTEtOTQ4NTM_c3ef26c2-d559-4fc7-b34f-17a1080e7e75"
      unitRef="usd">31327000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtMS0xLTEtOTQ4NTM_a7d9ddb9-d187-49a2-9a10-e9c824a18eb8"
      unitRef="shares">4596000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtMy0xLTEtOTQ4NTM_0a05175a-0a4b-450d-867c-c01e3c1dd78d"
      unitRef="usdPerShare">44.71</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtNS0xLTEtOTQ4NTM_c7dcfdbf-1955-431c-8fab-6b8c9f99f2ad">P4Y11M8D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzYtNy0xLTEtOTQ4NTM_ce096d94-7dbe-4352-a86b-1e5982e976a1"
      unitRef="usd">31025000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctMS0xLTEtOTQ4NTM_695585cd-1d73-48ee-8c67-f69192fc9c97"
      unitRef="shares">8038000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctMy0xLTEtOTQ4NTM_14981cf1-26e7-48ed-81a0-25c78cfd4dd2"
      unitRef="usdPerShare">51.10</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctNS0xLTEtOTQ4NTM_1d3d7639-a728-4666-9f3e-676c61a54b4a">P6Y3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWI1MDQ1OTIxNzQ0MGQ1OGU2NDcyMGE3NTkyMmRjNS90YWJsZXJhbmdlOjZhYjUwNDU5MjE3NDQwZDU4ZTY0NzIwYTc1OTIyZGM1XzctNy0xLTEtOTQ4NTM_b9ca6ac5-925b-4c62-bd06-e8e22a256baf"
      unitRef="usd">31224000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5NjU_52975811-7e38-4506-b855-19f207cb4355">&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 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 style="width:54.847%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.996%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.143%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.146%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;2020&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;2.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;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 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.3&#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 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.4&#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.44&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.27&#160;&lt;/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 colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.41&#160;&lt;/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;37&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;5.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;6.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;6.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="id4860aff35104dc9a6211278167eb085_D20220101-20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzItMS0xLTEtOTQ4NTM_181ab874-c3f6-47d5-8755-53883868bb49"
      unitRef="number">0.022</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzItMy0xLTEtOTQ4NTM_0cceeb94-7d11-4943-ad66-987952cf0a99"
      unitRef="number">0.013</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzItNS0xLTEtOTQ4NTM_56bd18ac-944f-4746-a737-b6241ee08c60"
      unitRef="number">0.014</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="id4860aff35104dc9a6211278167eb085_D20220101-20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzMtMS0xLTEtOTQ4NTM_e9cdedb9-ab2e-48c0-934c-0c8e75fdc4c3"
      unitRef="number">0.0044</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzMtMy0xLTEtOTQ4NTM_eafb67bf-784b-48dc-b65c-39d95e120efc"
      unitRef="number">0.0027</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzMtNS0xLTEtOTQ4NTM_8422c423-1b25-48a7-a6f2-c53af9be3fd3"
      unitRef="number">0.0041</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="id4860aff35104dc9a6211278167eb085_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzQtMS0xLTEtOTQ4NTM_4a6bf1ed-455b-49b2-b4cf-6fc5296ab98e"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzQtMy0xLTEtOTQ4NTM_2bae7bb3-148d-4b20-9428-6a89ea34a3a7"
      unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzQtNS0xLTEtOTQ4NTM_41d0c47e-647f-4ce4-965a-1fb460c9dca4"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="id4860aff35104dc9a6211278167eb085_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzUtMS0xLTEtOTQ4NTM_d116867d-015e-40e1-9ee4-06bb3ae2cd69">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i109f2a6c32cf4c59aff035fa78a21e79_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzUtMy0xLTEtOTQ4NTM_feea9eac-d0bb-4545-9366-76a9cbb63624">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i05b09f6ee7b346609bebff8b7c1aadb5_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo3ZWNmMWRhZjVkNzA0MmIxYTIwMmFkZDlmYmM5MTY4ZS90YWJsZXJhbmdlOjdlY2YxZGFmNWQ3MDQyYjFhMjAyYWRkOWZiYzkxNjhlXzUtNS0xLTEtOTQ4NTM_df70273a-df63-4501-ba9a-91249c005248">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE4OTc_7eaacc79-d715-49ca-9e80-6c1cf47300e9"
      unitRef="usdPerShare">21.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5MDc_5eca450f-30de-4223-be13-fddc0caeba54"
      unitRef="usdPerShare">33.79</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5MjE_d557aba0-4487-419e-86a9-1ba6a3a74008"
      unitRef="usdPerShare">19.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5ODg_0f8c304f-b1dd-428e-8ead-c1c3eb4a859f"
      unitRef="usd">8424000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzE5OTg_58781c12-c1d4-4c6e-aede-757cf6daf3e0"
      unitRef="usd">80369000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwMTI_186bec27-1812-4f74-80f7-3f3f06f48703"
      unitRef="usd">166796000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwNzE_8ec4715f-fc4a-4403-8abd-fbdf6ca7f748"
      unitRef="usd">41497000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwODE_f144ff48-78b8-4974-b6ad-f6333738dde9"
      unitRef="usd">45328000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIwOTU_99ab8fda-f540-4f69-9ad8-df5ff20afcf3"
      unitRef="usd">45998000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5Nzg_58deea73-053d-4aaf-a796-017ab85b7936">&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 style="width:62.496%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.808%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2021&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;823&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;65.26&#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;/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;715&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.06&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(192)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61.96&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(77)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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.65&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Nonvested as of December 31, 2022&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;1,269&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;61.74&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ib5f16cd1416c489a93f58f559fee5607_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzEtMS0xLTEtOTQ4NTM_4b786a9d-3b19-4ddf-9592-9f1c759f8a5c"
      unitRef="shares">823000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ib5f16cd1416c489a93f58f559fee5607_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzEtMy0xLTEtOTQ4NTM_cd5fa2cf-b6be-4f27-a04c-6d2d71143a1e"
      unitRef="usdPerShare">65.26</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzItMS0xLTEtOTQ4NTM_892ed321-2a09-443a-9e06-5edab0e99678"
      unitRef="shares">715000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzItMy0xLTEtOTQ4NTM_28526929-70f2-4372-9419-88c9b4dfa616"
      unitRef="usdPerShare">58.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzMtMS0xLTEtOTQ4NTM_46ba7aaf-a5c4-4a95-9b95-c300fe24bdf0"
      unitRef="shares">192000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzMtMy0xLTEtOTQ4NTM_3ef87c93-ae02-4c9d-80f8-a60d9a098f20"
      unitRef="usdPerShare">61.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzQtMS0xLTEtOTQ4NTM_b8c444b8-9368-432b-8504-15e2c56f2bd0"
      unitRef="shares">77000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzQtMy0xLTEtOTQ4NTM_aafbe7a7-cbec-4ecc-b481-9dcd157a1408"
      unitRef="usdPerShare">64.65</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i49f359f65be049c7a1f584ac2826c227_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzUtMS0xLTEtOTQ4NTM_e97f796c-7c0e-4d71-907a-8361daed0e8a"
      unitRef="shares">1269000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i49f359f65be049c7a1f584ac2826c227_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTo2YWNjNTFhYTYxYmU0NjM3ODNhNjU1Yjk3OTFiZmE5OC90YWJsZXJhbmdlOjZhY2M1MWFhNjFiZTQ2Mzc4M2E2NTViOTc5MWJmYTk4XzUtMy0xLTEtOTQ4NTM_0aa25609-7993-4ad2-8ada-3392bb9ae4f8"
      unitRef="usdPerShare">61.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i81186e4ca3d143a799e2f3172921a4ed_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzIxOTkwMjMyNjE5OTI_0848d0b7-a2a9-4424-b2f7-4b8556230e61"
      unitRef="usdPerShare">58.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="idb41a0641d09484fbb0e795616ffd333_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI0NDY_c64bc36c-9a2a-4544-a0b8-4240efefe45e"
      unitRef="usdPerShare">87.03</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i67dcdda7132f4c88a2876592c4fa2161_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI0NTM_921f578c-10bf-499d-a908-54252b45c746"
      unitRef="usdPerShare">52.09</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i45d73e790e074e1aa9cf9bb5112efe60_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTg2NQ_7cbd24ab-2409-44c3-b11a-ab48da39e965"
      unitRef="shares">192000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="idb41a0641d09484fbb0e795616ffd333_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI0ODI_1c320699-3874-4fdc-803e-6a4a62a93027"
      unitRef="shares">16000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i67dcdda7132f4c88a2876592c4fa2161_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI1MTU_cad3fa00-ad42-409d-bc36-38c617c94a05"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzEyNjQ0MzgzNzI1OTU0_be92c11d-5509-48da-adf1-ffe9f07fc0a8">&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;Performance Restricted Stock Units (PRSUs)&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 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 style="width:65.420%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.712%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.838%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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 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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2021&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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;/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;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;Nonvested as of December 31, 2022&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;33&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;62.49&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i51307a0012ee4d178b5c962dbfad699c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzEtMS0xLTEtMTExNzY0_1533df86-44f5-46ee-9e2d-e03d762cd719"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i51307a0012ee4d178b5c962dbfad699c_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzEtMy0xLTEtMTExNzY2_9c88cbeb-1c12-4264-9671-850805f8935c"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzItMS0xLTEtMTExNzY0_a915d638-bbcf-44a3-b706-0b2700c423de"
      unitRef="shares">33000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzItMy0xLTEtMTExNzY2_9ea2f93d-0418-4f2a-8d18-2b81305353aa"
      unitRef="usdPerShare">62.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzMtMS0xLTEtMTExNzY0_480e400b-d4f8-4958-8b7f-27aded073195"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzMtMy0xLTEtMTExNzY2_1591da3f-d1ea-4449-aac9-12b3dfa51571"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzQtMS0xLTEtMTExNzY0_55cf0867-4f31-4637-997a-51fd75d7b0ec"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzQtMy0xLTEtMTExNzY2_85880002-4013-4372-8ed8-5074174b6ee7"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i6cb0c6ba9c924090b591e3c9734f0d98_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzUtMS0xLTEtMTExNzY0_e8724baf-24b4-4cea-a362-3e09f11421b8"
      unitRef="shares">33000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i6cb0c6ba9c924090b591e3c9734f0d98_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTowYTYzMmMyNmQxZTU0NmNjYmJlNjA0Y2YyMTgzMjA4MC90YWJsZXJhbmdlOjBhNjMyYzI2ZDFlNTQ2Y2NiYmU2MDRjZjIxODMyMDgwXzUtMy0xLTEtMTExNzY2_89736a19-0232-4c02-9886-662c4451fc6c"
      unitRef="usdPerShare">62.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="iec52b2002cc947d3a004109ad8cf70d7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_2f0e298b-baad-4bc3-aff9-d92d6c5e9d7b"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="iecc601f5f32b49d286f9088c84383e7b_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_a2b47db0-d32b-4315-a98a-ab7bac03633f"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="iecc601f5f32b49d286f9088c84383e7b_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_acaebf0b-457c-41ef-8b1a-6f3b3e9fddfc"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="iec52b2002cc947d3a004109ad8cf70d7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzU0OTc1NTgxOTAyOA_dc18b14a-7622-4b61-9990-f15c64a76490"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <cgnx:NumberOfGroupsWithinEmployeePopulation
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI2Mzg_612b103b-7079-4d89-8170-438c1b61f35e"
      unitRef="group">2</cgnx:NumberOfGroupsWithinEmployeePopulation>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI3OTQ_9cbc1ded-7760-42b4-b41a-a2ac225a3304"
      unitRef="number">0.07</cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzI4NTc_efbffa4e-c3ea-44b3-81d2-14070f5e5b5d"
      unitRef="number">0.12</cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMwMTc_5e4e0ea9-4ce7-4db0-a968-46f64c25fa3d"
      unitRef="usd">1536000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMwNjY_705bf624-36b5-48ca-b48a-6bb2a4df43b1"
      unitRef="usd">255000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMxMTg_759c6e9b-7b5a-49ae-a43a-3b72e7bde250"
      unitRef="usd">1787000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMyNzE_4bffbe81-8716-4407-a265-3c64bf732e93"
      unitRef="usd">56694000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzMzNDQ_bda7b4f4-b3bf-49fa-8e00-7e2f28d5400d">P1Y6M3D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0NDc_6cb9b2e4-e34d-4da6-b5a0-1071675cef91"
      unitRef="usd">54505000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0NTQ_164688bb-795a-4394-85e8-091ea5a10fc0"
      unitRef="usd">9540000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0Nzk_0e150bef-8e1c-408e-94bf-64ce894469f4"
      unitRef="usd">43774000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM0ODY_b747032a-a8f9-4913-99ec-cbc505e27b9f"
      unitRef="usd">6764000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM1MTU_4fc38a4d-06d3-4d64-b70a-eef62ecf6db1"
      unitRef="usd">42661000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM1MjI_cd7e8f5c-732d-4327-aeff-545506a3d904"
      unitRef="usd">6569000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ShareBasedCompensation
      contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM2MTk_a81c1025-a95f-4f21-a317-55c43032a1b4"
      unitRef="usd">1401000</us-gaap:ShareBasedCompensation>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90ZXh0cmVnaW9uOjBmODgxMzBmY2Y0NjRlMDU4OTY1NjQ5ZTdlYjQwMTIzXzM5NzI_cd8c892d-95f2-4f9a-a60b-dd227d39598e">&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 style="width:51.176%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.318%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.534%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.320%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2020&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;2,016&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,345&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,365&#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;/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;17,693&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,387&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;34,796&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,909&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;54,505&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;43,774&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;42,661&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic2ae8f77de9b4c799265cfb17a22c13f_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzItMS0xLTEtOTQ4NTM_aa170e5a-bdb9-4b27-9e2e-bd6c55be5e58"
      unitRef="usd">2016000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i26f0a2662e014a07bed517edfdabf032_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzItMy0xLTEtOTQ4NTM_ebf25189-db54-4113-b513-c65a5f0765c1"
      unitRef="usd">1345000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ieaf5e8110105465bbdcd174be6c7c3c7_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzItNS0xLTEtOTQ4NTM_4e85d02b-7e43-406a-b973-134119c76ce8"
      unitRef="usd">1365000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="icbcf6bf0255a43d490f7a609261ad0d9_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzMtMS0xLTEtOTQ4NTM_248fbbbd-a799-482a-80a2-07412ffb1dde"
      unitRef="usd">17693000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i5c36aa17c9c346899dd928d5f7b29ba0_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzMtMy0xLTEtOTQ4NTM_372bb0b9-a9b9-4833-906c-37009a5534d0"
      unitRef="usd">13535000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i59acadfa63d64b228e29c41c5b239bb3_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzMtNS0xLTEtOTQ4NTM_4cadf2bf-b309-47bd-a081-6486531ed905"
      unitRef="usd">13387000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i5a430819d9be410f96a87b715ae593a0_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzQtMS0xLTEtOTQ4NTM_b97857c2-86a6-4ef1-ba06-3d983ac91064"
      unitRef="usd">34796000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i8ced57d781a744e6b8adea75821d589e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzQtMy0xLTEtOTQ4NTM_fcb05b00-798e-441b-9be1-11e7773af8e9"
      unitRef="usd">28894000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i7ef3fe8205994c6fa8c7d6dced93ab94_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzQtNS0xLTEtOTQ4NTM_2ca2b5e6-cb6c-444e-a16f-7a115e4ac687"
      unitRef="usd">27909000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzYtMS0xLTEtOTQ4NTM_6d551120-29fe-43de-b983-a66a5fce0e1f"
      unitRef="usd">54505000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzYtMy0xLTEtOTQ4NTM_ca745ded-a85e-47ba-ab80-76cef3a7aac9"
      unitRef="usd">43774000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNjYvZnJhZzowZjg4MTMwZmNmNDY0ZTA1ODk2NTY0OWU3ZWI0MDEyMy90YWJsZTphNWIyMWE4NDMyZjM0ZGUwYWUyYjE0ZGE5ZWQzYjk5NC90YWJsZXJhbmdlOmE1YjIxYTg0MzJmMzRkZTBhZTJiMTRkYTllZDNiOTk0XzYtNS0xLTEtOTQ4NTM_15db9d90-4ebd-42cb-94da-ae9576f1e55d"
      unitRef="usd">42661000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzc0MA_e87eee8f-5125-494d-a979-1fdc5eeaecf2">Employee Savings PlanUnder 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,284,000 in 2022, $2,898,000 in 2021, and $2,636,000 in 2020. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzE0OQ_db2a6582-bd95-4e03-8c1b-66411cffaf83">P21Y</cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan>
    <us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzE3Mw_fe7a2951-ae95-471e-8cf3-0ebd9cce0c57"
      unitRef="number">1</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzM2NQ_420d7b41-cc06-45cf-9ad8-002d2e4757c0"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzM4MQ_29f05e9f-774d-4db2-8793-7bcfbd91750c"
      unitRef="number">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <cgnx:CompanyContributionsVestAtEndOfOneYear
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ0Mw_7f2964d1-ffd9-4989-9c5e-8ed1916b43ba"
      unitRef="number">0.25</cgnx:CompanyContributionsVestAtEndOfOneYear>
    <cgnx:CompanyContributionsVestAtEndOfTwoYear
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ0Nw_15dab50d-22a5-4460-a5ad-68d0e463b90d"
      unitRef="number">0.50</cgnx:CompanyContributionsVestAtEndOfTwoYear>
    <cgnx:CompanyContributionsVestAtEndOfThreeYears
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ1MQ_e159eb83-54df-45af-9dfb-61f8c605de3f"
      unitRef="number">0.75</cgnx:CompanyContributionsVestAtEndOfThreeYears>
    <cgnx:CompanyContributionsVestAtEndOfFourYears
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzQ1OQ_2093e679-234d-4abd-9201-623d0f92f0b9"
      unitRef="number">1</cgnx:CompanyContributionsVestAtEndOfFourYears>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzU4Nw_fc0ccfd1-bd42-42cf-8692-9c353e35f5a4"
      unitRef="usd">3284000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzU5Nw_ffce0175-f61c-460d-8d40-6102f7640f1c"
      unitRef="usd">2898000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzIvZnJhZzo5ODYxZGZkOGEyYmI0YTkwYmYzODAwNzFlNmNmMmVkYS90ZXh0cmVnaW9uOjk4NjFkZmQ4YTJiYjRhOTBiZjM4MDA3MWU2Y2YyZWRhXzYxMQ_4a94c401-a491-430f-be06-619d743be25e"
      unitRef="usd">2636000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzgwNDc_479dacf9-8e33-4d52-bdb9-811a7ee560f3">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 $48,546,000 in 2022, $121,729,000 in 2021, and $39,425,000 in 2020. Foreign income before taxes was $202,149,000 in 2022, $197,171,000 in 2021, and $147,486,000 in 2020. &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 style="width:48.680%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.154%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2020&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;/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;48,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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;27,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;160&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;5,689&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,372&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;10,243&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;64,287&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,648&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;14,278&#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;/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;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,266)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(18,266)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(769)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(556)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;20,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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,629)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(3,553)&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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;35,170&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39,019&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;10,725&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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 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 style="width:62.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.613%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.613%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.614%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2020&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 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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;(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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 credit&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;Discrete tax benefit related to employee stock options&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 tax return filings&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 related to a rate revaluation on state 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:700;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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: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:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 expense related to international tax reserves&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;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 benefit for audit settlements&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;Discrete tax benefit for release of valuation allowance&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;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Limitation on executive 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;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;14&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 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;12&#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 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;6&#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-bottom:8pt;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 the reserve for income taxes, excluding gross 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 style="width:81.158%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.642%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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 of reserve for income taxes as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;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,952&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Gross amounts of decreases in unrecognized tax benefits 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;(280)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Gross amounts of increases in unrecognized tax benefits 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;100&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current 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;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Gross amounts of decreases in unrecognized tax benefits 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;(485)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 of reserve for income taxes as of December 31, 2021&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;13,812&#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;/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;Gross amounts of decreases in unrecognized tax benefits 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;/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;Gross amounts of increases in unrecognized tax benefits 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;/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;Gross amounts of increases in unrecognized tax benefits 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;/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;Gross amounts of decreases in unrecognized tax benefits 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;/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;Gross amounts of decreases in unrecognized tax benefits 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;/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 of reserve for income taxes as of December 31, 2022&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;13,647&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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 reserve for income taxes, including gross interest and penalties, was $15,866,000 and as of December 31, 2022, which is classified as a non-current liability. The Company's reserve for income taxes, including interest and penalties, was $15,808,000 as of December 31, 2021, which included $14,780,000 classified as a non-current liability and $1,028,000 recorded as a reduction to non-current deferred tax assets. The amount of gross interest and penalties included in these balances was $2,219,000 and $1,996,000 as of December&#160;31, 2022 and 2021, 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 $1,000,000 to $1,500,000 over the next twelve months.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;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, and Korea and within the United States, Massachusetts. The statutory tax rate is 12.5% in Ireland, 25% in China, and 21.5% 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 7 percentage points for 2022, 5 percentage points for 2021, and 6 percentage points for 2020. Management has determined that earnings from its legal entity in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. &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 &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;2019 through 2021 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2017 through 2021 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. During 2022 the Company settled IRS audits for the tax years 2017 and 2018 which resulted in a net discrete tax &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;benefit. Additionally, the Company is under audit by the Commonwealth of Massachusetts for the amended returns filed for tax years 2017 and 2018. 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 $229,000, $281,000, and $340,000 in 2022, 2021, and 2020, 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;Cash paid for income taxes totaled $57,016,000 in 2022, $49,435,000 in 2021, and $33,695,000 in 2020.&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, 2022 and December 31, 2021 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 style="width:66.495%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.735%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.737%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;386,221&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;404,526&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Stock-based compensation 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;21,962&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 and state tax credit carryforwards&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,284&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,051&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Inventory and revenue related&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;8,117&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,426&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Bonuses, commissions, and other 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;5,116&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,263&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;2,119&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 net operating 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:700;line-height:100%"&gt;53&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;751&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;16,889&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;15,102&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;463,863&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;460,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;/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;(7,661)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;456,202&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;452,526&#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;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(298,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(327,725)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&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;Net deferred taxes&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;157,280&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;124,801&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;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: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 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 15 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. Management &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;expects an immaterial impact on its current effective tax rate excluding discrete items in future years as a result of this change.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;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: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 December 31, 2022, the Company recorded a deferred tax asset resulting from the capitalization of research and development expenditures. Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to currently 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.&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&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; December 31, 2022, the Company had foreign net operating loss carryforwards of &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$180,000&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;, state tax credit carryforwards of $6,050,000, and &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;foreign tax credit carryforwards of $2,234,000.&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 December 31, 2022, the Company had a valuation allowance for state research and development tax credits of $6,869,000 that was not considered to be realizable. Should these credits be utilized in a future period, the reserve associated with these credits would be reversed in the period when it is determined that the credits can be utilized to offset future state income tax liabilities. As of December 31, 2022, the Company had state research and development tax credit carryforwards of $7,658,000, which will begin to expire for the 2032 tax return.&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;While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax assets 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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzYx_3ddca2d1-2c90-4ae8-8e9e-3522f2552e62"
      unitRef="usd">48546000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0Xzcx_cb0dfbc4-24d4-452b-b89c-c26ac8cc5073"
      unitRef="usd">121729000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0Xzg1_7ace09ee-ac54-4745-bda0-794a76876ed0"
      unitRef="usd">39425000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNw_c937a2c7-5fae-4168-933a-d8bc8d24bdb5"
      unitRef="usd">202149000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEzNw_6f38e821-4929-4139-ab77-98f2e6f071dc"
      unitRef="usd">197171000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzE1MQ_f43d6215-6f20-417b-b7bd-fe220ea6b0af"
      unitRef="usd">147486000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzgwNzE_d070b6f0-b416-4c44-a540-41f171d0f39e">&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 style="width:48.680%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.154%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2020&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;/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;48,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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;27,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;160&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;5,689&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,372&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;921&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;10,243&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;64,287&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,648&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;14,278&#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;/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;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,266)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(18,266)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;(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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(769)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(556)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;20,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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,629)&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(3,553)&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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;35,170&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;39,019&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;10,725&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzMtMS0xLTEtOTQ4NTM_ce14e51a-590f-4316-928a-6b5436c57b26"
      unitRef="usd">48355000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzMtMy0xLTEtOTQ4NTM_510067cd-0046-4acb-b229-cd0934bdae3e"
      unitRef="usd">27870000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzMtNS0xLTEtOTQ4NTM_437ca96b-21d2-4524-9917-f1bcdc4c6a5c"
      unitRef="usd">160000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzQtMS0xLTEtOTQ4NTM_2234c013-d66e-42d4-8087-096cdec0578e"
      unitRef="usd">5689000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzQtMy0xLTEtOTQ4NTM_7c01cb63-f436-4ec3-80f0-7c9c38bfd1a8"
      unitRef="usd">5372000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzQtNS0xLTEtOTQ4NTM_06d4b948-77aa-4fbd-8d17-a8ebcb0c707b"
      unitRef="usd">921000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzUtMS0xLTEtOTQ4NTM_26a4821c-3050-476f-a9b8-6ce6da53f07b"
      unitRef="usd">10243000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzUtMy0xLTEtOTQ4NTM_1ab4d49c-ef32-4916-868e-968ebddf9531"
      unitRef="usd">8406000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzUtNS0xLTEtOTQ4NTM_4ebe8b22-433e-48a8-9df4-344260a668fc"
      unitRef="usd">13197000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzYtMS0xLTEtOTQ4NTM_14887d6e-bc72-48fa-8625-09d18c2e69e8"
      unitRef="usd">64287000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzYtMy0xLTEtOTQ4NTM_92b0ff8c-ecd9-485c-bbcc-d82ad7ab70cb"
      unitRef="usd">41648000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzYtNS0xLTEtOTQ4NTM_76bdeafb-29f9-470a-88ec-2d08639b805f"
      unitRef="usd">14278000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzgtMS0xLTEtOTQ4NTM_e35f7555-a17c-4339-ac52-7412a21aec3f"
      unitRef="usd">-40772000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzgtMy0xLTEtOTQ4NTM_031dd09a-a807-4b8b-b8c9-34d622582aee"
      unitRef="usd">-19266000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzgtNS0xLTEtOTQ4NTM_15187654-286c-48ee-8e39-17a244e7fb0d"
      unitRef="usd">-18266000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzktMS0xLTEtOTQ4NTM_c2fb8c71-25c3-4637-80dd-597724806f21"
      unitRef="usd">-8354000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzktMy0xLTEtOTQ4NTM_c2633041-8564-4626-9554-21e19770b41c"
      unitRef="usd">-769000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzktNS0xLTEtOTQ4NTM_64c69ad9-ecaf-4e20-b34f-53cb963a472e"
      unitRef="usd">-556000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEwLTEtMS0xLTk0ODUz_9321fa34-24d0-4d0c-95ea-7aa60184aa1d"
      unitRef="usd">20009000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEwLTMtMS0xLTk0ODUz_23196dfe-f63d-4277-a9e7-b1119eeee9e7"
      unitRef="usd">17406000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEwLTUtMS0xLTk0ODUz_c157a303-9a3b-4f49-b5ac-b0a94685b4ef"
      unitRef="usd">15269000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzExLTEtMS0xLTk0ODUz_005d853e-39f4-4055-b860-c370c8ff9d55"
      unitRef="usd">-29117000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzExLTMtMS0xLTk0ODUz_2fdb285d-9f6d-427f-8bd5-731cdd0dfe7d"
      unitRef="usd">-2629000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzExLTUtMS0xLTk0ODUz_82046f58-a9dc-4db2-bea4-e8483c47d3b5"
      unitRef="usd">-3553000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEyLTEtMS0xLTk0ODUz_979e739f-b42d-45ec-b565-3ed5d929ebfb"
      unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEyLTMtMS0xLTk0ODUz_17cba26b-127c-4901-9b9a-0f91a3b61c7a"
      unitRef="usd">39019000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZToyZjM0MjU5NWEzMTI0Y2EzOGIxM2U4MWQwYmQwZGFlNy90YWJsZXJhbmdlOjJmMzQyNTk1YTMxMjRjYTM4YjEzZTgxZDBiZDBkYWU3XzEyLTUtMS0xLTk0ODUz_bb0c5501-4e6e-44f2-8e19-8fe5ad265ed9"
      unitRef="usd">10725000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyODc3_f39b5f16-fa02-45df-bef1-6fec9e59fa99">&lt;div style="margin-top:4pt;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 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 style="width:62.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.613%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.613%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.532%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.614%"/&gt;&lt;td style="width:0.1%"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2020&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 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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;(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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 credit&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;Discrete tax benefit related to employee stock options&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 tax return filings&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 related to a rate revaluation on state 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:700;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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: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:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 expense related to international tax reserves&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;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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 benefit for audit settlements&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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;Discrete tax benefit for release of valuation allowance&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;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Limitation on executive 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;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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;/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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;14&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 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;12&#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 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;6&#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="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzItMS0xLTEtMTEyMTEz_2ef0eeb4-5e87-46d9-a0de-60e74d5f943c"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzItMy0xLTEtMTEyMTE1_8e9e6bc7-f466-4ea7-8e1e-26a2fda77054"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzItNS0xLTEtMTEyMTE3_4091a551-8b5f-4fb4-bc6e-4d5c31b1f896"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzMtMS0xLTEtMTEyMTEz_0ea975d2-642c-41e4-a7e5-ed6b14ea3c5a"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzMtMy0xLTEtMTEyMTE1_d5c3c3de-2e6e-4eca-a0b2-153a81d68340"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzMtNS0xLTEtMTEyMTE3_1a51c89e-5319-4302-a359-47ef433c71a5"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzQtMS0xLTEtMTEyMTEz_cf1c7faa-8bee-4ac0-8c60-d5ef9271224a"
      unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzQtMy0xLTEtMTEyMTE1_b20e91b0-5513-4fa5-b315-ab25bf310416"
      unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzQtNS0xLTEtMTEyMTE3_49f9bd7b-54c0-41c6-afbd-45d9a85920de"
      unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzUtMS0xLTEtMTEyMTEz_204b7b9b-c8b2-4adc-8141-beb4a8eec0bb"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzUtMy0xLTEtMTEyMTE1_2931c9fb-61a4-4ef0-9ffc-b0f9f8e3820b"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzUtNS0xLTEtMTEyMTE3_c72bdaf3-5347-4b0d-9159-5c69373a64e0"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzctMS0xLTEtMTEyMTEz_cc7bd879-c414-4490-afe4-f18d12d1b89b"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzctMy0xLTEtMTEyMTE1_dc930514-8968-4158-8981-7667cc64b623"
      unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzctNS0xLTEtMTEyMTE3_17efff05-35ef-410b-9a62-6fd36a2b29a4"
      unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzgtMS0xLTEtMTEyMTEz_5b02bfc9-8cde-48b2-b14f-d1ca3a853202"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzgtMy0xLTEtMTEyMTE1_fb388087-d82f-4e51-8855-f2e28740fb72"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzgtNS0xLTEtMTEyMTE3_716bfd73-7288-4c8a-bdc7-ee2147d1d689"
      unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzktMS0xLTEtMTEyMTEz_614a8e05-946c-450b-8df2-0ffb9678d11e"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzktMy0xLTEtMTEyMTE1_01957e63-b9c7-48ff-acab-502b16faa284"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzktNS0xLTEtMTEyMTE3_379f61cb-320d-499e-b3b3-5603db0d19b2"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEwLTEtMS0xLTExMjExMw_b6a0c831-5493-4ca8-b9fe-05a70946cb19"
      unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEwLTMtMS0xLTExMjExNQ_a1446252-bc4f-45f6-9283-b2781659c244"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEwLTUtMS0xLTExMjExNw_25c38a4f-7c8e-4947-8f0c-73bb3bf0500b"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzExLTEtMS0xLTExMjExMw_465eb324-5be2-401b-9882-70c8a68e66e5"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzExLTMtMS0xLTExMjExNQ_cd4889ea-b728-40f0-afc0-52d21c7d5359"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzExLTUtMS0xLTExMjExNw_d07a5863-eb75-4de5-95ac-5308bb7db8e7"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEyLTEtMS0xLTExMjExMw_28b895a7-0469-4f96-954c-f359c6385f1a"
      unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEyLTMtMS0xLTExMjExNQ_f2785956-5beb-45d8-abec-998b0738f3f1"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEyLTUtMS0xLTExMjExNw_5bca0f41-f406-4cd6-9374-33cc7df4575f"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEzLTEtMS0xLTExMjExMw_1016923e-664a-43a7-bade-0b0151acc04a"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEzLTMtMS0xLTExMjExNQ_ec892b86-61f1-454d-bf59-38c19061967a"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzEzLTUtMS0xLTExMjExNw_8e8b1fc5-ef15-4d76-9e89-c71f8be0a389"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTEtMS0xLTExNjI3OA_b5c88853-bffb-49b5-bb39-136020352f61"
      unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTMtMS0xLTExNjI3OA_3bc56150-8f9d-4ba6-9fde-39b17e14a9dc"
      unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTUtMS0xLTExNjI3OA_dea0700f-79fa-43d6-9d69-1b68a2373fd3"
      unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTEtMS0xLTExMjExMw_eac48c05-67ae-43f6-93a7-fa50cad5d977"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTMtMS0xLTExMjExNQ_cb26f037-9283-4008-9846-935b52fef11e"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE1LTUtMS0xLTExMjExNw_bf84a2ea-76bd-43ef-8521-a7117a26b0dd"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE2LTEtMS0xLTExMjExMw_e90ec749-249e-4e6b-8ee7-edf520aabcd0"
      unitRef="number">0.14</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE2LTMtMS0xLTExMjExNQ_5261028d-39a5-4b77-8723-be3aeeeec0cb"
      unitRef="number">0.12</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo2YjI4MzU5N2Y4NzU0MWFmODQxN2I2Y2FiZWRjYmU2ZS90YWJsZXJhbmdlOjZiMjgzNTk3Zjg3NTQxYWY4NDE3YjZjYWJlZGNiZTZlXzE2LTUtMS0xLTExMjExNw_61bb5ac6-e1f0-4fbf-ac42-fe4308f108a4"
      unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:SummaryOfIncomeTaxContingenciesTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyODc4_449f093e-3e0a-40e6-b1a3-e19af13fc001">&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 reserve for income taxes, excluding gross 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 style="width:81.158%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.642%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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 of reserve for income taxes as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;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,952&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Gross amounts of decreases in unrecognized tax benefits 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;(280)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Gross amounts of increases in unrecognized tax benefits 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;100&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current 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;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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Gross amounts of decreases in unrecognized tax benefits 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;(485)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 of reserve for income taxes as of December 31, 2021&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;13,812&#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;/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;Gross amounts of decreases in unrecognized tax benefits 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;/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;Gross amounts of increases in unrecognized tax benefits 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;/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;Gross amounts of increases in unrecognized tax benefits 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;/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;Gross amounts of decreases in unrecognized tax benefits 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;/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;Gross amounts of decreases in unrecognized tax benefits 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;/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 of reserve for income taxes as of December 31, 2022&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;13,647&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfIncomeTaxContingenciesTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzAtMS0xLTEtMTEyMTIx_47aaf3e5-c76b-4d29-84fc-77c8a4062021"
      unitRef="usd">13952000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzEtMS0xLTEtMTEyMTIx_a7b910df-a416-48d2-8e48-ad49eb4e2496"
      unitRef="usd">280000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzItMS0xLTEtMTEyMTIx_a18149c6-e6fc-478b-9367-e79a9c6c29fc"
      unitRef="usd">100000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzMtMS0xLTEtMTEyMTIx_594547b3-10ca-4a5b-acba-581d5c902c06"
      unitRef="usd">525000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzUtMS0xLTEtMTEyMTIx_9b8a4f18-f27b-427a-94df-8cdb85d514a1"
      unitRef="usd">485000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzYtMS0xLTEtMTEyMTIx_d163cccc-3bfe-47d7-a7c6-6043184802cf"
      unitRef="usd">13812000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzctMS0xLTEtMTEyMTIx_bdf1ba51-8f77-4d72-8c05-8c15e0d26053"
      unitRef="usd">119000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzgtMS0xLTEtMTEyMTIx_e809d13a-f68e-41dc-9051-3c52587b71c1"
      unitRef="usd">2850000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzktMS0xLTEtMTEyMTIx_8b65adca-d228-4eb0-aade-7f0f201cf577"
      unitRef="usd">505000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzEwLTEtMS0xLTExMjEyMQ_3dfa1efc-982f-4d13-b893-9579344992a5"
      unitRef="usd">2329000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzExLTEtMS0xLTExMjEyMQ_93a78cab-bd22-4671-905d-cd7fac549af0"
      unitRef="usd">1072000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTozZjFlYjFjZDhhMmY0OWE0YTI0ZGJhY2Y2NTc5YWFiZC90YWJsZXJhbmdlOjNmMWViMWNkOGEyZjQ5YTRhMjRkYmFjZjY1NzlhYWJkXzEyLTEtMS0xLTExMjEyMQ_3884d033-6133-4d48-9683-909b4b5c0ec8"
      unitRef="usd">13647000</us-gaap:UnrecognizedTaxBenefits>
    <cgnx:UnrecognizedTaxBenefitsGross
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4MDI5_768e2f80-be62-493b-80bb-2b1c1dd0449c"
      unitRef="usd">15866000</cgnx:UnrecognizedTaxBenefitsGross>
    <cgnx:UnrecognizedTaxBenefitsGross
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4MTg3_87231f95-2a02-4533-8049-8af8a6953f3e"
      unitRef="usd">15808000</cgnx:UnrecognizedTaxBenefitsGross>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4MjMx_ab8d7c50-885f-4d38-87f8-67148f1392bc"
      unitRef="usd">14780000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4Mjc3_bc78cbd5-aba4-4e48-b300-2fe9b72d64f8"
      unitRef="usd">1028000</cgnx:Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4NDE2_8db2cdd0-5d49-4e6f-96ab-0d37002bf6df"
      unitRef="usd">2219000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4NDI0_69bfb45a-bea1-43da-a14b-2de03e982bec"
      unitRef="usd">1996000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4ODc4_f5fc57b3-3103-47ce-bac4-ac2a7043545e"
      unitRef="usd">1000000</cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU4ODg1_748bb01a-6d8c-4345-9755-900bff3a7652"
      unitRef="usd">1500000</cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="ibc0be7986f054a1eaa3d2887a5e677b1_D20220101-20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MDkw_0fb13271-e192-451f-ba30-d1d70d6111c1"
      unitRef="number">0.125</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i4526d1f7d6a24522bb915ff66995bb84_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MTA2_fdcdcffe-e79a-478a-90e8-9f751d2b9185"
      unitRef="number">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i2cdf322ae13e4b169074cb9700a7529c_D20220101-20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MTI0_83b0a71e-9556-4121-be21-e85a46ab0f09"
      unitRef="number">0.215</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i45af88e9e3d940d4a2e79f5bddd71867_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MTk5_a01a7dbd-a82e-4d89-96fc-6a5821548625"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5Mjgy_c1234dc7-22a2-40e6-b014-9c60f3898908"
      unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MzEz_edc1fe36-398e-40a0-8989-bbd2d2b0045d"
      unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzU5MzQ4_a7b13222-c08c-47a0-9b80-0db6d2c88420"
      unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNTcx_dba386e3-b166-418b-90d9-888c8f292d86"
      unitRef="usd">229000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNTc2_846da5c3-2d91-4d9f-bec9-0bf89ca770ca"
      unitRef="usd">281000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNTg1_429a5d2b-8e54-4411-b18d-6f04c846de35"
      unitRef="usd">340000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNjYw_3f8cd824-53b6-4168-80bc-958f997dfdb2"
      unitRef="usd">57016000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNjcy_52c7f6eb-d0f9-4944-a416-7591db35544a"
      unitRef="usd">49435000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYwNjg4_d5e763d8-c201-4cff-8619-0bc66d72421a"
      unitRef="usd">33695000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyODc5_fa8c6db8-9610-488c-b2f6-5d4afec27351">&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, 2022 and December 31, 2021 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 style="width:66.495%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.735%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.737%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;2021&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/&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 colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;386,221&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;404,526&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Stock-based compensation 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;21,962&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 and state tax credit carryforwards&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,284&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,051&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Inventory and revenue related&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;8,117&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,426&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;Bonuses, commissions, and other 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;5,116&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,263&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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;2,119&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 net operating 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:700;line-height:100%"&gt;53&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;751&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;16,889&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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;/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;15,102&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,023&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;463,863&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;460,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;/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;(7,661)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;456,202&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;452,526&#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;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(298,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(327,725)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&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;Net deferred taxes&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;157,280&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;124,801&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzMtMS0xLTEtMTEyMTIz_207d62cc-34f1-454c-a52c-e6f657c14a5e"
      unitRef="usd">386221000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzMtMy0xLTEtMTEyMTI1_54ce7852-5d27-43f2-ab33-34a7f955be8d"
      unitRef="usd">404526000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzQtMS0xLTEtMTEyMTIz_2d9bc54a-e8cd-4630-9550-bcc181e41478"
      unitRef="usd">21962000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzQtMy0xLTEtMTEyMTI1_0f13143f-6e2d-4ccb-955e-563afe0bf936"
      unitRef="usd">15279000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzUtMS0xLTEtMTEyMTIz_1d388257-3ffd-46ad-b2fa-1229d8e366a4"
      unitRef="usd">8284000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzUtMy0xLTEtMTEyMTI1_e6927dc9-2a67-462e-a2de-bd2d5297f343"
      unitRef="usd">11051000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzYtMS0xLTEtMTEyMTIz_930f7fbc-b7f3-4a9d-97b8-97c9d53e2ad3"
      unitRef="usd">8117000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzYtMy0xLTEtMTEyMTI1_8e7e1eb3-c7de-48a3-a5cb-674306fe746f"
      unitRef="usd">7426000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzctMS0xLTEtMTEyMTIz_d2e6b93c-69eb-4ea3-bf18-8a797f59a49b"
      unitRef="usd">5116000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzctMy0xLTEtMTEyMTI1_ab2c4c0c-d8b6-45af-83aa-cc9c2dd9ef38"
      unitRef="usd">7263000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzgtMS0xLTEtMTEyMTIz_c846a476-cff6-4d52-9022-43b248f5411d"
      unitRef="usd">2119000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzgtMy0xLTEtMTEyMTI1_29b0539b-5381-44bf-a682-cac677f67368"
      unitRef="usd">5395000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzktMS0xLTEtMTEyMTIz_61e01b36-d2dc-4848-97d7-e6feeecad080"
      unitRef="usd">53000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzktMy0xLTEtMTEyMTI1_43fb63f8-f3fc-4a0e-8769-c4105185d5aa"
      unitRef="usd">751000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEwLTEtMS0xLTExMjEyMw_6062d74a-a684-442e-b509-11c842ac6661"
      unitRef="usd">16889000</cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses>
    <cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEwLTMtMS0xLTExMjEyNQ_cdec3f24-604a-48c5-8d72-a879fc513601"
      unitRef="usd">0</cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses>
    <cgnx:DeferredTaxAssetsOtherNoncurrent
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzExLTEtMS0xLTExMjEyMw_e7315897-e90d-4e8c-9a68-9a08e2387d83"
      unitRef="usd">15102000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsOtherNoncurrent
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzExLTMtMS0xLTExMjEyNQ_2fbee988-349a-4dc6-a45a-de3144d93a34"
      unitRef="usd">9023000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEyLTEtMS0xLTExMjEyMw_9672f02c-8830-4e6f-85ab-9cd9e0aa76f2"
      unitRef="usd">463863000</cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross>
    <cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEyLTMtMS0xLTExMjEyNQ_01b7e6f7-6ea5-4e07-b83e-c34de7fafc0e"
      unitRef="usd">460714000</cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEzLTEtMS0xLTExMjEyMw_7393d0e8-3d7e-43f2-a9cb-bc08f74c6b04"
      unitRef="usd">7661000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzEzLTMtMS0xLTExMjEyNQ_5ecbd857-5587-4b7a-ac06-c53befb870a9"
      unitRef="usd">8188000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE0LTEtMS0xLTExMjEyMw_8e05d3f2-eed0-47ae-8c86-486fc1610c97"
      unitRef="usd">456202000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE0LTMtMS0xLTExMjEyNQ_6b0e02bf-d6a6-4921-a59e-aa7b771f49fe"
      unitRef="usd">452526000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE3LTEtMS0xLTExMjEyNw_01fb49b4-49fa-4cf8-a87a-0d710b9298ad"
      unitRef="usd">298922000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzE3LTMtMS0xLTExMjEzMQ_d55c8a88-f9b1-4b23-87d1-8cbccb39a483"
      unitRef="usd">327725000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <cgnx:DeferredIncomeTaxAssetsLiabilitiesNet
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzIyLTEtMS0xLTExMjEyOA_fd960d5d-312f-4738-9a63-81abaf3714de"
      unitRef="usd">157280000</cgnx:DeferredIncomeTaxAssetsLiabilitiesNet>
    <cgnx:DeferredIncomeTaxAssetsLiabilitiesNet
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90YWJsZTo0NmNiOTk1MDdmMDY0YzY5YjZlNWM4NWQ5ZTk2YTM0Yi90YWJsZXJhbmdlOjQ2Y2I5OTUwN2YwNjRjNjliNmU1Yzg1ZDllOTZhMzRiXzIyLTMtMS0xLTExMjEzMw_ce9d71b2-7056-4e8b-a6e7-cfe9a7d4934c"
      unitRef="usd">124801000</cgnx:DeferredIncomeTaxAssetsLiabilitiesNet>
    <cgnx:DeferredTaxAssetsForeignTaxStructureChange
      contextRef="i009bdd105744470f92f9842dbdccb264_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzU0OTc1NTg2NjM0NQ_49b28038-8cce-4544-afe4-0d579a1ecf87"
      unitRef="usd">437500000</cgnx:DeferredTaxAssetsForeignTaxStructureChange>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome
      contextRef="i009bdd105744470f92f9842dbdccb264_I20191231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzU0OTc1NTg2NjM1OQ_23d15689-f2d1-4b61-a4d8-2b6e0c87fe1e"
      unitRef="usd">350000000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="i9129c87dd0e949fb969ceab36fc702ab_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNTAz_e3dc4b70-a094-47ae-b11d-0aef01183cdb"
      unitRef="usd">180000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState
      contextRef="i883c5601d8c74a2f9beffe621ca1879d_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNTQy_0451cb7e-1d59-4ffa-8fed-30f961f54771"
      unitRef="usd">6050000</cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign
      contextRef="i9129c87dd0e949fb969ceab36fc702ab_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNTg3_be62c6a6-e000-40bb-a993-2bb992a697c2"
      unitRef="usd">2234000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="ic97ddb7e41b740f594ea9c53355b616f_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYxNzAy_3793dbd4-9745-485d-8378-ff81207edc2f"
      unitRef="usd">6869000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="i780814879ecc43d5993029565f7273f9_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xNzgvZnJhZzphOGM1NzM3ZjhiMjY0ZmVhOTJhYmU3YzMyMTA2Njc5NC90ZXh0cmVnaW9uOmE4YzU3MzdmOGIyNjRmZWE5MmFiZTdjMzIxMDY2Nzk0XzEyNjQ0MzgzNzYyMDc2_2dbea9b9-2b12-4d82-8485-54174acb0ec5"
      unitRef="usd">7658000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzYxOA_f0646584-8170-46e6-9714-8eb18d2ed007">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 style="width:55.058%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.976%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.976%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.124%"/&gt;&lt;td style="width:0.1%"/&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 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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2020&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;173,407&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;176,463&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,489&#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;/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,462&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;174,869&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;179,916&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;176,592&#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;/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;Stock options to purchase 4,715,104, 497,504, and 4,371,194 shares of common stock, on a weighted-average basis, were outstanding in 2022, 2021, and 2020, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 26,079, 605, and 3,826 shares of common stock, on a weighted-average basis, were outstanding in 2022, 2021, and 2020, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. No PRSUs were excluded in the calculation of dilutive net income per share in 2022, 2021, and 2020 as PRSUs were not anti-dilutive on a weighted-average basis.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzYyNA_50ede246-5e55-4bb6-8d1e-362f9df1b77f">&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 style="width:55.058%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.976%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.976%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.124%"/&gt;&lt;td style="width:0.1%"/&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 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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;2020&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;173,407&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;176,463&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,489&#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;/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,462&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;174,869&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;179,916&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;176,592&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzItMS0xLTEtOTQ4NTM_48eee153-f448-4708-b66d-8dd7e645b09b"
      unitRef="shares">173407000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzItMy0xLTEtOTQ4NTM_b6b60f44-a188-43d8-880f-ed09c9fd58aa"
      unitRef="shares">176463000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzItNS0xLTEtOTQ4NTM_c434ff81-21ae-4dac-82ec-14b8b3511d1d"
      unitRef="shares">173489000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzMtMS0xLTEtOTQ4NTM_3f9b1505-05c1-431f-98a1-2c6530843b33"
      unitRef="shares">1462000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzMtMy0xLTEtOTQ4NTM_528ad8e7-b2b8-4c28-9d17-1877e03a3e0e"
      unitRef="shares">3453000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzMtNS0xLTEtOTQ4NTM_8184c0d6-dfb1-43c2-a9f6-65d1d73caa15"
      unitRef="shares">3103000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzQtMS0xLTEtOTQ4NTM_0ba477f5-e9f1-4153-af21-9ec9ad7ab7cc"
      unitRef="shares">174869000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzQtMy0xLTEtOTQ4NTM_39927dae-4164-4bd5-bca0-453009338dfe"
      unitRef="shares">179916000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90YWJsZTpjYmUwNmY0NzRiODI0ODhjYjA4MTE1YmI4MTBjMDNhZS90YWJsZXJhbmdlOmNiZTA2ZjQ3NGI4MjQ4OGNiMDgxMTViYjgxMGMwM2FlXzQtNS0xLTEtOTQ4NTM_bf147328-813f-4743-8ffc-2f7f0c6d06ba"
      unitRef="shares">176592000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ibc9067130ed84e849433c76631b763ed_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzEzMw_a4574700-05fe-4f45-9ff0-124fcbfe5fc6"
      unitRef="shares">4715104</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ied180d64cab3406b839f2c4087ae0020_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzEzNw_a966e428-56df-4de2-9ba3-53654ff393c1"
      unitRef="shares">497504</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ie3c045c9713b435f8160b9ecf1299044_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzE0NQ_9a7edd77-850f-4eae-8fea-bb3a2b46c6d6"
      unitRef="shares">4371194</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ia4f52443268d461da36b2c2dfbdecdb5_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzM5MA_696d4306-41e8-478f-a515-3953a3592a3e"
      unitRef="shares">26079</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ia9cbff9664cb4e56bc444e7febb27086_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzM5NA_b06df6aa-3011-453f-8ae7-c22ea1c72a13"
      unitRef="shares">605</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i448d9902f4f248c2925c3342dcbdecf7_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzQwMg_406e5355-3a73-4fed-8b98-2dfb55d9ae50"
      unitRef="shares">3826</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i422f78304faf4c55ad914f8bf630dca4_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzIxOTkwMjMyNTcwMDQ_472d12c2-f9b1-4b45-94f2-f7f14bb6f7a9"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ib7ef6e080e01401eb22ca2d2352c1475_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzIxOTkwMjMyNTcwMDQ_5cfe94de-eed5-463f-ba6a-2bd8fda5f3ca"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i71d263f5bcc8449590269860ead6af02_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODQvZnJhZzpiOTY0YjFiY2ZhYTM0ZGU4OWFiMjRmODM0Y2I0MDdlOS90ZXh0cmVnaW9uOmI5NjRiMWJjZmFhMzRkZTg5YWIyNGY4MzRjYjQwN2U5XzIxOTkwMjMyNTcwMDQ_eb3260b2-4156-4fad-9afb-901b2960e6be"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEyOTU_b6ab640e-37c1-4f6e-90d1-28991eccd71d">Segment and Geographic Information&lt;div style="margin-top:4pt;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 makes decisions to allocate resources and assesses performance at the corporate level, without regard to geography, legal entity, or end market. The Company offers a variety of machine vision products that have similar economic characteristics, have the same production processes, 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 style="width:28.665%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.243%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.393%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 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 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 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, 2022&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&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;343,835&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;234,643&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;227,447&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;200,165&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;1,006,090&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;66,928&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,725&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,334&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,370&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;86,357&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;393,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;200,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;195,529&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;63,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;960&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;84,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;280,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;208,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;168,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;153,741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;811,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;60,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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:4pt;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 11%, 17%, and 14% of total revenue in 2022, 2021, and 2020, respectively. Accounts receivable from this same customer accounted for 15% of total accounts receivable as of December 31, 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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% and 13% of total revenue in 2022 and 2020. Revenue from this customer was not greater than 10% of total revenue in 2021. Accounts receivable from this same customer accounted for 11% of total accounts receivable as of December 31, 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzcz_93885b18-15a7-462a-99ac-b27ecb12010c"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEzMDA_575fcb96-3ae6-4e10-adf5-c666df8fe56b">&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 style="width:28.665%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.243%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.389%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.533%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.393%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 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 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 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, 2022&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&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;343,835&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;234,643&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;227,447&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;200,165&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;1,006,090&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;66,928&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,725&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,334&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,370&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;86,357&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;393,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;200,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;195,529&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;63,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;960&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;84,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;280,205&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;208,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;168,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;153,741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;811,020&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;60,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,014&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,764&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if33ecec5c8144a8c966621960cbb84e0_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItMS0xLTEtOTQ4NTM_dd3058c0-5308-4341-bd4e-8fe9475087a6"
      unitRef="usd">343835000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i81c26265146a4e0cabd3a5ad1dc520f4_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItMy0xLTEtOTQ4NTM_28de6541-2849-4765-b695-d81b13698ced"
      unitRef="usd">234643000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ifacc8a191ed34cc3956d7cb3c18bfb50_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItNS0xLTEtOTQ4NTM_fa20fb26-9e7e-4055-8031-bf3ffacb2698"
      unitRef="usd">227447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if9c291a1b7154cf0b03d68e4559fcfcb_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItNy0xLTEtOTQ4NTM_eb24bfcd-dc43-425f-8aff-22f986e4c75f"
      unitRef="usd">200165000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzItOS0xLTEtOTQ4NTM_c95b54f7-87e0-467a-ad85-dfbb97a24916"
      unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="i0cd7fb4c2acb452f822e36908fbcacff_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtMS0xLTEtOTQ4NTM_6921fb9a-d0aa-4820-a7a8-a84238a79bb2"
      unitRef="usd">66928000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="iacacf3e6cbeb43e58c59d7fde4d9d9fb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtMy0xLTEtOTQ4NTM_20593c47-64fa-40c9-b6b9-3bf676cb5be3"
      unitRef="usd">14725000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="if01274f14e124fb7b344e0b335d49b2b_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtNS0xLTEtOTQ4NTM_0cf7ad7f-4f98-4faa-b86c-8ce53bee9b31"
      unitRef="usd">1334000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i780e30c3beb447ec962def693c363e3d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtNy0xLTEtOTQ4NTM_8736fb3a-4ed5-42ce-bbd7-1d6675e22977"
      unitRef="usd">3370000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i393d75f8d66f45f28c85f12a0a1cb95c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzMtOS0xLTEtOTQ4NTM_b3ccff3c-a0f6-4c62-8e30-5e44aed1ef0c"
      unitRef="usd">86357000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i736bad4dad6944eca4b443a7133c8509_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtMS0xLTEtOTQ4NTM_59393e3c-5c34-4df4-9fbe-d5b0a256723e"
      unitRef="usd">393690000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i81e4d0ae1cdb4710abb92bad9ac6186e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtMy0xLTEtOTQ4NTM_5b598c8d-3e90-44dc-aaf6-0d93f64787f7"
      unitRef="usd">247744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iad4f830115f54196885c8808f5f26002_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtNS0xLTEtOTQ4NTM_e7230191-f1d0-4fa2-937a-426345e59e26"
      unitRef="usd">200135000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7806244a633e43888a9095b38d705253_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtNy0xLTEtOTQ4NTM_05798718-e2a8-49bd-8cc7-f89ed163eef6"
      unitRef="usd">195529000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzUtOS0xLTEtOTQ4NTM_7a7eedf9-f632-4dac-94b0-ff158b750897"
      unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="i760aa1a4efe3426894eb40a9729d6e10_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtMS0xLTEtOTQ4NTM_17e15f46-06f5-47db-ac03-f09672187c98"
      unitRef="usd">63141000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="idb390063cc074bcbba90cb9e46f79d2f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtMy0xLTEtOTQ4NTM_6b32856f-eb33-4534-9a42-b541df924156"
      unitRef="usd">16982000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="ib1b4629e786947a1a19577acecb99a73_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtNS0xLTEtOTQ4NTM_825a0b48-5b78-40a3-8328-d869adaa64c4"
      unitRef="usd">960000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i5f7d11e3ffad4c89badd6634c0960055_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtNy0xLTEtOTQ4NTM_22830294-0772-41c1-a14a-c9b09f6e01d1"
      unitRef="usd">3705000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i0a741b855258479e8feae873870a21fe_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzYtOS0xLTEtOTQ4NTM_26b683de-7cca-4dc0-bd78-8e8a0c258013"
      unitRef="usd">84788000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib6f636e14b00439c8df741688b096e76_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtMS0xLTEtOTQ4NTM_edbaa688-49fc-441c-bc7a-00c47b5ab803"
      unitRef="usd">280205000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie55ae60220f64f2a9333aff7cb5e7e79_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtMy0xLTEtOTQ4NTM_4ed76776-1a62-4d37-a063-65b1f174ca81"
      unitRef="usd">208787000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia5f10baf3e6e431791d90b042d2b7dbe_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtNS0xLTEtOTQ4NTM_e80ec5ae-6509-4225-b42c-647b90f7b8cd"
      unitRef="usd">168287000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib542cb5ce63642f7bb269e702188ded4_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtNy0xLTEtOTQ4NTM_277bbcc2-89d6-4708-9f91-4ffd9c966632"
      unitRef="usd">153741000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzgtOS0xLTEtOTQ4NTM_8a72dd72-4e07-4c88-b7b5-6d87ebfa70a5"
      unitRef="usd">811020000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="icc5e47429c0d413b88d2ad52922c8590_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktMS0xLTEtOTQ4NTM_3964f4de-4e4c-4b64-9cfb-5f09f3bc15d4"
      unitRef="usd">60911000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="ia44a70ef129441b9887bde869acad17d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktMy0xLTEtOTQ4NTM_65ec364b-36b0-469a-b82d-6f9d104c976f"
      unitRef="usd">20014000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="id1a27eb26028461e87485e9119c27fc0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktNS0xLTEtOTQ4NTM_00dbef31-a9fb-4c23-88c6-4aaa41e9717a"
      unitRef="usd">1278000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i433bf20d7ba54aa18508727462fdc63d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktNy0xLTEtOTQ4NTM_af3db985-487f-4aa9-b436-0f0bca290cb7"
      unitRef="usd">4764000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i8e0d073af74d4c279e60b0eb6a88f53f_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90YWJsZTowODU5YTJiNTFhZGU0MGQwODZlYWJjNjA2MzczY2JkYi90YWJsZXJhbmdlOjA4NTlhMmI1MWFkZTQwZDA4NmVhYmM2MDYzNzNjYmRiXzktOS0xLTEtOTQ4NTM_b06dc96d-03d7-4186-be0e-001a23004e1e"
      unitRef="usd">86967000</us-gaap:NoncurrentAssets>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ie8ba94c197bd41f0b3b33d4398e5935b_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzcwNg_34152515-054e-4549-b46b-b7d73fcb0609"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i44288c37097d4942bf6c7e2b92fcd809_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzcxMw_1f780d98-5f5f-48a7-8464-1edb6f825143"
      unitRef="number">0.17</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="iede40299fb3d4337914719e64abf17cf_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzU0OTc1NTgxNTI5OQ_10a43abd-17da-4faf-a327-ae0b86bcecd3"
      unitRef="number">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id092db34af2242f3b85505708b3165d5_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzkwOA_4f289cea-5e99-4578-ab04-8765bcc74567"
      unitRef="number">0.15</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i843c8ec204cd46e583da828b478cc847_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzU0OTc1NTgxNTQxMg_cf97fd8c-df4f-41b8-8048-707debe89efa"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i22e0abbde5ec49e188c6fb263f21bf76_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEwMzM_755a185d-8aea-4ba6-a676-d4a54ed45897"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id9b95c2f672d4c6bbd31953247fe1f51_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xODcvZnJhZzpjNjJhN2Q3NjFiY2Y0Nzk4YWQ3ZGUxZjA2MzFhMDE4Yy90ZXh0cmVnaW9uOmM2MmE3ZDc2MWJjZjQ3OThhZDdkZTFmMDYzMWEwMThjXzEyMTM_9f0a0702-2b0e-4616-b991-1538a99dedfa"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMzk_d5433d26-9110-44d4-a45a-6cccd9a8aab8">Business Acquisitions&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;SAC Sirius Advanced Cybernetics GmbH&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 December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#x2019;s capabilities in defect detection, and accelerate its growth trajectory with electric vehicle battery manufacturers. The purchase price of the acquisition was not material to the Company's consolidated financial statements.&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;Sualab Co., Ltd.&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 16, 2019, the Company acquired all the outstanding shares of Sualab Co., Ltd. ("Sualab"), a provider of deep learning-based vision software for industrial image analysis based in Korea. The total consideration of $193,638,000 included cash payments of $170,602,000 upon closing. In the fourth quarter of 2020, the Company recorded a credit to goodwill in the amount of $1,004,000 representing a purchase price adjustment. The remaining consideration consists of deferred payments of $24,040,000 that may become payable in October 2023, contingent upon the continued employment of key talent, and is being recorded as compensation expense over the four-year period.&lt;/span&gt;&lt;/div&gt;Deteriorating global economic conditions from the COVID-19 pandemic triggered a review of long-lived assets for potential impairment in the second quarter of 2020. This review resulted in intangible asset impairment charges totaling $19,571,000 in the second quarter of 2020, primarily related to lower projected cash flows from the technologies and customer relationships acquired from Sualab. Completed technologies, in-process technologies, and customer relationships acquired from Sualab were impaired in the amounts of $10,070,000, $5,900,000, and $3,382,000, respectively.</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzI3NQ_684c9999-754e-4187-8e3e-7047aa3d6f4f"
      unitRef="usd">193638000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzMwNA_2f92a58e-eddf-4246-acca-1e8a9bf2bc54"
      unitRef="usd">170602000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsForProceedsFromPreviousAcquisition
      contextRef="iba4bd73731dc4f07bb9f0ef132d075a2_D20200928-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzQxMQ_7bd56844-0cf1-4158-9dc7-16ca62dfd874"
      unitRef="usd">1004000</us-gaap:PaymentsForProceedsFromPreviousAcquisition>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i4b5f6ecdd9df4630b3d91537e2ac5fc6_I20191016"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzUxNw_6fafc681-46c9-4afa-8f70-78176db4d08d"
      unitRef="usd">24040000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzkyMw_cc56f962-105d-4f05-bbef-ca0d38fe2ffb"
      unitRef="usd">19571000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="ie67d26e226f842f78def61df0513f4d1_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMDU_2490da79-d71d-4595-bbe0-3c7ff3ec0855"
      unitRef="usd">10070000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill
      contextRef="idada75d878da464ea026b4a203cbcb10_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMDk_49247849-fe56-442f-a828-2c562e59a4ef"
      unitRef="usd">5900000</us-gaap:ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill>
    <us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill
      contextRef="if6cae797bb3e4fd2861d574e8b857954_D20200330-20200628"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTMvZnJhZzo5OTYwNDU4NTMwZjE0NDg2ODZhOGIwN2I4MTFhYmE3MS90ZXh0cmVnaW9uOjk5NjA0NTg1MzBmMTQ0ODY4NmE4YjA3YjgxMWFiYTcxXzEyMTc_74837347-fd88-4d29-89a3-9b0b6f25ceb1"
      unitRef="usd">3382000</us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill>
    <cgnx:CatastropheTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV8xMjY0NDM4Mzc0NTAxMA_a33714ff-1372-4c82-9a1a-514e6191490d">Loss from Fire&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 June 7, 2022, the Company&#x2019;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to assess the damage, resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. &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 result of the fire, the Company recorded $48,339,000 in gross losses in 2022, related to $37,663,000 of primarily Cognex-owned inventory that was destroyed or deemed to have a net realizable value of zero, $8,709,000 of primarily prepayments related to Cognex-designated components that were owned by the contract manufacturer and other assets, and $1,967,000 related to deleveraging of costs related to our distribution centers.&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;Gross losses have been reduced by insurance proceeds received from the Company&#x2019;s insurance carrier of $27,560,000 in the fourth quarter of 2022. Gross losses net of insurance recovery of $20,779,000 are presented in the caption &#x201c;Loss from fire&#x201d; on the Consolidated Statements of Operations.&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 of December 31, 2022 and through the date of financial statement issuance, management cannot yet estimate additional recoveries that could be available from the contract manufacturer. Any future, additional recoveries in excess of recognized losses will be treated as gain contingencies and will be recognized when the gain is realized or realizable. There can be no assurance, however, that additional insurance coverage and/or recoveries from the contract manufacturer will be available to cover the net loss from the fire.&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;After considering all the relevant events and circumstances resulting from the fire, management does not believe that the carrying value of the Company exceeds its fair value, or that the carrying amount of the Company&#x2019;s intangible assets may not be recoverable. As such, no goodwill or intangible asset impairment charges were recorded during 2022 as a result of the fire.&lt;/span&gt;&lt;/div&gt;</cgnx:CatastropheTextBlock>
    <cgnx:GrossLossFromCatastrophes
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQwNTY_89633ba7-43b5-49f3-be58-8afcee165c64"
      unitRef="usd">48339000</cgnx:GrossLossFromCatastrophes>
    <us-gaap:InventoryWriteDown
      contextRef="ic5bb8208f5754b4ebf3c9e59746629a5_D20220607-20220607"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQwOTE_322811a0-ccbf-41ea-aeb6-d988c4aea7c4"
      unitRef="usd">37663000</us-gaap:InventoryWriteDown>
    <us-gaap:AssetImpairmentCharges
      contextRef="ic5bb8208f5754b4ebf3c9e59746629a5_D20220607-20220607"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQxMDM_1daecbe0-788a-40d1-8f73-c420cbff939a"
      unitRef="usd">8709000</us-gaap:AssetImpairmentCharges>
    <us-gaap:CostOfGoodsAndServicesSoldOverhead
      contextRef="i94b0adcbc2804c19bee8fa928a2fd7bd_D20220101-20221002"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzQxMTQ_8f07681e-2821-4802-8112-5308ef4164c5"
      unitRef="usd">1967000</us-gaap:CostOfGoodsAndServicesSoldOverhead>
    <us-gaap:InsuranceRecoveries
      contextRef="ifeda0162266f40cd80c621dc7f7da27c_D20221003-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzM5MjU_0e3fd732-8bd1-48ee-b68d-313ef376183f"
      unitRef="usd">27560000</us-gaap:InsuranceRecoveries>
    <us-gaap:LossFromCatastrophes
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDczL2ZyYWc6MzdiNjgxYzhjYzY3NGQwM2JkYTE0NTg3NzNiNjI1MzEvdGV4dHJlZ2lvbjozN2I2ODFjOGNjNjc0ZDAzYmRhMTQ1ODc3M2I2MjUzMV81NDk3NTU4MzM5NTI_cfd455a0-2fd3-46e8-9603-3f472694d803"
      unitRef="usd">20779000</us-gaap:LossFromCatastrophes>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzI2MjM_d0bd9764-2e5f-43c8-aeac-a882a4a864ba">Restructuring Charges&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;December 2022 Restructuring&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;In December 2022, following its acquisition of SAC (refer to Note 21), the Company performed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities included a workforce reduction of 18 employees and the termination of certain operating lease contracts, and resulted in charges of $1,657,000 in 2022. These charges are included in &#x201c;Restructuring charges&#x201d; on the Consolidated Statements of Operations. As of December 31, 2022, the majority of these restructuring actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring plan.&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 following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.194%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,584&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;1,657&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#x2019;s restructuring reserve related to the December 2022 Restructuring, which is included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets (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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:52.701%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.104%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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: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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;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-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;&#x2014;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;&#x2014;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#ffffff;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-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;&#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;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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:400;line-height:100%"&gt;1,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,657&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;Cash payments&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;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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, 2022&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;964&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&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;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 #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;1,039&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;May 2020 Restructuring&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 May 26, 2020, the Company's Board of Directors approved a restructuring plan intended to reduce the Company's operating costs, optimize its business model, and address the impact of the COVID-19 pandemic. The restructuring plan included a global workforce reduction of approximately 8% and office closures. The Company recorded restructuring charges from these actions totaling $15,924,000 in 2020 which are included in &#x201c;Restructuring charges&#x201d; on the Consolidated Statements of Operations. As of December 31, 2020, the majority of these actions were completed and no additional charges are expected to be incurred in future periods in relation to this restructuring plan. There were no restructuring charges recognized in 2022 or 2021 related to this restructuring plan.&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&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 restructuring charges for the year ended December 31, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.194%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;10,159&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 associated costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;558&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;15,924&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;One-time termination benefits included severance, health insurance, and outplacement services for 181 employees who were either terminated during the second quarter of 2020, or were notified during the second quarter of 2020 that they would be terminated at a future date. For employees not required to render service beyond a minimum retention period, the one-time termination benefits were recognized in the second quarter of 2020. Otherwise, these benefits, including retention bonuses for selected employees, were recognized over the remaining service period which was completed by December 31, 2020.&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;Contract termination costs included operating lease asset impairment charges for eleven offices closed prior to the end of the contractual lease term. These costs also included the write-off of leasehold improvements and other equipment related to these abandoned offices that had no alternative use, as well as other associated operating costs, such as utilities, that the Company is obligated to pay for the remainder of the lease term. These contract termination costs were primarily recognized in the second quarter of 2020 when the Company ceased using the property for economic benefit. &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;Other associated costs primarily included legal fees related to the employee termination actions, which were recognized when the services were performed. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#x2019;s restructuring reserve related to the May 2020 Restructuring, which is included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets (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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:38.227%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.104%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.548%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Other Associated Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;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: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, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;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-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,624&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;750&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;15&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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,389&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 payments&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,142)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,384)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2021&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;482&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&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;516&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&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;&#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;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;998&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Cash payments&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;(482)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(265)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(747)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2022&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;&#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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/&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;245&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/&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;&#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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/&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;245&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzEyNjQ0MzgzNzI2MTQ4_f813d496-873f-4d88-9a4f-edde6a3d479b"
      unitRef="employees">18</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated>
    <us-gaap:RestructuringCharges
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzIxOTkwMjMyNjExOTY_f09e758b-79fb-4126-aa82-1abc810b5b4b"
      unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzEyNjQ0MzgzNzI2MTQ5_d589da53-162d-4b77-b12c-fba2768c7a0c">&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 following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.194%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,584&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;1,657&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock>
    <us-gaap:RestructuringCharges
      contextRef="ie32ebedb57974f7ea1a721d7abd8efff_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTo2YmFkZjcwZTEzYmQ0MjBhYWNhNzg4NGI3MDUwYjYyZS90YWJsZXJhbmdlOjZiYWRmNzBlMTNiZDQyMGFhY2E3ODg0YjcwNTBiNjJlXzEtMy0xLTEtMTA1NjM3_5322afe0-b99f-470e-bcd9-24ba86e2174c"
      unitRef="usd">1584000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i3a766c86adf146bb876cab5893f555a7_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTo2YmFkZjcwZTEzYmQ0MjBhYWNhNzg4NGI3MDUwYjYyZS90YWJsZXJhbmdlOjZiYWRmNzBlMTNiZDQyMGFhY2E3ODg0YjcwNTBiNjJlXzItMy0xLTEtMTA1NjM5_9023c1b4-550a-402f-9df4-b82b7ac6d1ac"
      unitRef="usd">73000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTo2YmFkZjcwZTEzYmQ0MjBhYWNhNzg4NGI3MDUwYjYyZS90YWJsZXJhbmdlOjZiYWRmNzBlMTNiZDQyMGFhY2E3ODg0YjcwNTBiNjJlXzQtMy0xLTEtMTA1NjQx_12386842-7916-4a7d-8c24-eab1e9d22bff"
      unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzEyNjQ0MzgzNzI2MTUw_7e27f29e-661b-4a7d-814c-3160ae4d0f7f">&lt;div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#x2019;s restructuring reserve related to the December 2022 Restructuring, which is included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets (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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:52.701%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.104%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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: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, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;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-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;&#x2014;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;&#x2014;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#ffffff;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-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;&#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;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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:400;line-height:100%"&gt;1,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,657&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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;Cash payments&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;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/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, 2022&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;964&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&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;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 #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;1,039&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:16pt;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 following table summarizes the activity in the Company&#x2019;s restructuring reserve related to the May 2020 Restructuring, which is included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets (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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:38.227%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.104%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.384%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.548%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;Other Associated Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;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: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, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;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-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,624&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;750&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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;15&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;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-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,389&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 payments&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,142)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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,384)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;&#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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2021&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;482&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&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;516&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&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;&#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;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;998&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Cash payments&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;(482)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(265)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(747)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;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;&#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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;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)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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, 2022&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;&#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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/&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;245&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/&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;&#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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/&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;245&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
    <us-gaap:RestructuringReserve
      contextRef="ie65ef75b834449cb92d44e451af3b68f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzEtMS0xLTEtMTA1NjQz_bcd3e3ce-0236-4f2c-be99-879e42314b33"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="icfc3fa7a278e49c2bb0506f47b41decd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzEtMy0xLTEtMTA1NjU1_50729373-b118-4715-a377-ecb67f4d8411"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i3267ddf6eeb345028e6c64305107f057_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzEtNy0xLTEtMTA1NjY1_1b9e2716-7898-4d18-80f1-8def735790e8"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringCharges
      contextRef="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzItMS0xLTEtMTA1Njc1_ef687738-c8fb-4095-bb41-d760346602ac"
      unitRef="usd">-1584000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzItMy0xLTEtMTA1Njc4_b11888cb-5627-480d-8a85-56d782cf7040"
      unitRef="usd">-73000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzItNy0xLTEtMTA1Njgw_6eccaf49-aa2b-40d6-a8a4-b8d0296dab17"
      unitRef="usd">-1657000</us-gaap:RestructuringCharges>
    <us-gaap:PaymentsForRestructuring
      contextRef="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzMtMS0xLTEtMTA1NjQ3_dc702940-7311-4bea-85f9-497bf930e54d"
      unitRef="usd">646000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzMtMy0xLTEtMTA1NjU3_26e23fe9-1238-4afa-a044-92253e93a304"
      unitRef="usd">0</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzMtNy0xLTEtMTA1NjY5_dc07a4c0-f181-427f-baf5-7b8f0b9bd23b"
      unitRef="usd">646000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="iaafc58c7ecaf41ff9433f8bab2f2a042_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzYtMS0xLTEtMTA1NjUw_0106c2ce-dd02-4911-9cdf-66502faa5184"
      unitRef="usd">26000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="ia7fd6778331a4019a3b8d27c0f1c9856_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzYtMy0xLTEtMTA1NjYw_6dc6bbc2-99b8-4316-828d-0b48af185855"
      unitRef="usd">2000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="ie47a1cf412f647099f84ebbf1bcb931b_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzYtNy0xLTEtMTA1Njcx_9f2d3f73-2b1a-4242-ab15-6f2d105c8967"
      unitRef="usd">28000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve
      contextRef="i80e9ad4ee7a64dd1baa78b63dba84935_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzctMS0xLTEtMTA1NjUz_45863a6c-bce3-45d5-964b-ebeabfbecd01"
      unitRef="usd">964000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="id787c23f289843789074e08d2171a18f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzctMy0xLTEtMTA1NjYy_7f0359ab-df98-4047-847d-e346d5e41068"
      unitRef="usd">75000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i6a523bb16ddb45efaf8e76c8b0927ea1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTowNDZlZjBjYzgwODU0YmNlYmQyZWIxMDEzMjE3ZjczOC90YWJsZXJhbmdlOjA0NmVmMGNjODA4NTRiY2ViZDJlYjEwMTMyMTdmNzM4XzctNy0xLTEtMTA1Njcz_8f32cc1e-c157-43d7-92fa-5c0eee1494da"
      unitRef="usd">1039000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent
      contextRef="i8e050d2b1282473eb9707ece03c779f0_I20200526"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzMyMg_013bdda1-2515-44b5-a61d-739a026e1894"
      unitRef="number">0.08</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent>
    <us-gaap:RestructuringCharges
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzQxNw_681d52df-043f-4a33-b1ac-9712d550f7d6"
      unitRef="usd">15924000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock
      contextRef="i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzI2MjQ_57c2d12e-7e1b-4f11-bf60-e48111a12b24">&lt;div&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 restructuring charges for the year ended December 31, 2020 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&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:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:24.194%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&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;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;10,159&#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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;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,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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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 associated costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;558&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;15,924&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',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 colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock>
    <us-gaap:RestructuringCharges
      contextRef="i600b8f977640419eb1675e17636d9ca8_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzEtMy0xLTEtOTQ4NTM_08138d57-2bbd-408e-b715-67f35d8f5094"
      unitRef="usd">10159000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i42ff3e178de64a8195007ed9f4abd8fe_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzItMy0xLTEtOTQ4NTM_f66af2b9-a21e-4516-9b94-f8e153b4f9e3"
      unitRef="usd">5207000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i4e530fea3f1c4da69ebde9dab9a343ad_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzMtMy0xLTEtOTQ4NTM_66be8911-ef35-4c1d-989b-505c9c2ef95a"
      unitRef="usd">558000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZToyNDAyOTJiYTNiNmU0ODk4YmYxZDMzN2Q3OWFhMGVjYS90YWJsZXJhbmdlOjI0MDI5MmJhM2I2ZTQ4OThiZjFkMzM3ZDc5YWEwZWNhXzQtMy0xLTEtOTQ4NTM_b394b666-6c01-4958-8b61-423da93bc16b"
      unitRef="usd">15924000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated
      contextRef="i89164cd0d04c47aabe904d7959fa6754_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90ZXh0cmVnaW9uOjQ3N2UyNGJlZjYyZjQ5YWU5OGFiMTQxNjQ5MjUzYjRjXzk3MA_654c56f4-6b00-460a-ad2e-e7e904bf8925"
      unitRef="employees">181</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated>
    <us-gaap:RestructuringReserve
      contextRef="ia1e2784fdde844afa0ab2507951775c2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtMS0xLTEtOTQ4NTM_2d8832a3-11ce-4805-9cdd-bb2ca73ade66"
      unitRef="usd">1624000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="if0c845f3557243618541b6ef4cdd2295_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtMy0xLTEtOTQ4NTM_17ba9e9c-628b-4880-bc3c-a141a9aaf272"
      unitRef="usd">750000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="ibb076eea4f334a8bbfc7c968502e806b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtNS0xLTEtOTQ4NTM_bc63127e-a5b3-40c6-a9b5-cfb3d6048e3a"
      unitRef="usd">15000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i330fd257bfc64e1b88e79d165f517fe8_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEtNy0xLTEtOTQ4NTM_7f91e54e-71be-4e60-9d54-0f596731a423"
      unitRef="usd">2389000</us-gaap:RestructuringReserve>
    <us-gaap:PaymentsForRestructuring
      contextRef="i486e59888ae249dd8626fcf8f9b0160b_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtMS0xLTEtOTQ4NTM_3f3db0f0-9312-4f86-bbc4-f9d1438c1bd2"
      unitRef="usd">1142000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="ibf61588c7728470eacd9c2a10751c46d_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtMy0xLTEtOTQ4NTM_c7524a86-2060-4809-8e0a-4e64ff657848"
      unitRef="usd">227000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="i5d52417344c14c29bbccd5d541a4024e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtNS0xLTEtOTQ4NTM_bf4a8678-4d6c-4a9a-baef-4f92142471e6"
      unitRef="usd">15000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="ie9018d36cd394bc280df55a11358c66e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzMtNy0xLTEtOTQ4NTM_cccf2ad0-1c43-49cb-960a-bbbc196736f4"
      unitRef="usd">1384000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i486e59888ae249dd8626fcf8f9b0160b_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtMS0xLTEtOTQ4NTM_9f6ba24b-af50-4305-8df5-f7e8bb4063ed"
      unitRef="usd">0</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="ibf61588c7728470eacd9c2a10751c46d_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtMy0xLTEtOTQ4NTM_c37c1475-9f19-4c7e-9769-bd2d0052b23f"
      unitRef="usd">-7000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i5d52417344c14c29bbccd5d541a4024e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtNS0xLTEtOTQ4NTM_e5c3df6a-ff0c-4bfc-99cd-d0992d01b5f0"
      unitRef="usd">0</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="ie9018d36cd394bc280df55a11358c66e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzYtNy0xLTEtOTQ4NTM_e702ceb9-eaa4-4588-b204-39c02d5e2d91"
      unitRef="usd">-7000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve
      contextRef="i5e7e9c89e41d4792973df7578c9e9544_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctMS0xLTEtOTQ4NTM_99ba9ebf-3fc5-4b02-9156-46bae6210832"
      unitRef="usd">482000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i5f53ad11b6ee4531bc73dec57db7714e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctMy0xLTEtOTQ4NTM_5c0982b7-35f1-4e30-aae1-0ad7571256fc"
      unitRef="usd">516000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i12348e9eef654011a546d0ae93a4d600_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctNS0xLTEtOTQ4NTM_9259d3ff-1ef9-43b7-98de-90d714974195"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i96a61c89495a490db9c8b066f5466ae4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzctNy0xLTEtOTQ4NTM_5ad205cd-b56a-433b-bc53-1eb6d434c1fd"
      unitRef="usd">998000</us-gaap:RestructuringReserve>
    <us-gaap:PaymentsForRestructuring
      contextRef="i703a3c7e139a4f648b75f2cca1ababa7_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktMS0xLTEtOTQ4NTM_094ba5de-0cb4-48db-8e0c-6e5bc9e86cad"
      unitRef="usd">482000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="i2a9a0a4058bb4a49b5c5f5e117d80933_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktMy0xLTEtOTQ4NTM_37e115ba-8320-468c-9b05-7d15f9f694ea"
      unitRef="usd">265000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="i1c136c9b24e2498a93308cad0ee1c3ae_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktNS0xLTEtOTQ4NTM_e680be81-2201-44c9-b25e-d3bba71a785b"
      unitRef="usd">0</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring
      contextRef="iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzktNy0xLTEtOTQ4NTM_83642af5-bdd1-463d-8b3d-7ccc07727e72"
      unitRef="usd">747000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i703a3c7e139a4f648b75f2cca1ababa7_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTEtMS0xLTk0ODUz_bf10b9a7-af2b-4905-b27c-31b471311fec"
      unitRef="usd">0</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i2a9a0a4058bb4a49b5c5f5e117d80933_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTMtMS0xLTk0ODUz_ccb8f3ec-56fa-4f9e-a3fc-804c06ee91be"
      unitRef="usd">-6000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="i1c136c9b24e2498a93308cad0ee1c3ae_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTUtMS0xLTk0ODUz_b81e66ac-1736-45a8-a796-920a61724ac6"
      unitRef="usd">0</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment
      contextRef="iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEyLTctMS0xLTk0ODUz_5e745172-21ea-453a-b59a-3b405d9d9ceb"
      unitRef="usd">-6000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve
      contextRef="i3a7e6e13bdd3458bb1087c48776d8cac_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTEtMS0xLTk0ODUz_c43e8b18-6d71-4fba-b9a8-86ac06eaa40c"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i49730dd44e964a35b86a2b1cd195f392_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTMtMS0xLTk0ODUz_126ed8c3-f43b-4824-ba50-a5fb97b23d21"
      unitRef="usd">245000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="ib05d86b5f147419d8cbeecde9b3a99dd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTUtMS0xLTk0ODUz_b13a6473-f025-4337-8f4c-9c72b164dd4b"
      unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve
      contextRef="i1e7d9d33dca5421bbb53ae9c4825ee6d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8xOTkvZnJhZzo0NzdlMjRiZWY2MmY0OWFlOThhYjE0MTY0OTI1M2I0Yy90YWJsZTpjNzQ5OWUxOTU1OTM0NTNhYTczOTliOGFjNWJjOTZkYS90YWJsZXJhbmdlOmM3NDk5ZTE5NTU5MzQ1M2FhNzM5OWI4YWM1YmM5NmRhXzEzLTctMS0xLTk0ODUz_8b5ee9c9-9c65-4bad-85d7-b2ecb55bf909"
      unitRef="usd">245000</us-gaap:RestructuringReserve>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDIvZnJhZzozOGNmZGI0YmI2MTU0MjU4YjM1YmQ2NTlkMmUwNTliOS90ZXh0cmVnaW9uOjM4Y2ZkYjRiYjYxNTQyNThiMzViZDY1OWQyZTA1OWI5XzIyMw_4f650496-521e-42ad-8461-2f51c212b13c">Subsequent EventsOn February 16, 2023, the Company's Board of Directors declared a cash dividend of $0.070 per share. The dividend is payable March 17, 2023 to all shareholders of record as of the close of business on March 3, 2023.</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:DividendsPayableAmountPerShare
      contextRef="i02cdf9af3e804fda94a3d434209cdf3b_I20230216"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDIvZnJhZzozOGNmZGI0YmI2MTU0MjU4YjM1YmQ2NTlkMmUwNTliOS90ZXh0cmVnaW9uOjM4Y2ZkYjRiYjYxNTQyNThiMzViZDY1OWQyZTA1OWI5XzExNQ_094ba6b4-215a-4654-8870-262b9158855c"
      unitRef="usdPerShare">0.070</us-gaap:DividendsPayableAmountPerShare>
    <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90ZXh0cmVnaW9uOjdjMzgzYWU2ZTJlNTRmNDI5NDE4ODhiYTFhMGI0YmFiXzE0MQ_73826e07-bd22-4373-8a3c-6aa5e2ddbb52">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 style="width:30.711%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.472%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.472%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.472%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.536%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.914%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.581%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.472%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.581%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.481%"/&gt;&lt;td style="width:0.1%"/&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 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 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 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 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 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 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 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 colspan="3" style="padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 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 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;/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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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;(55)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 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;776&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;530&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;(300)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;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 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;831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 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 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;/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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,291&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 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;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;/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;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,291&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 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 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,291&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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;/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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,568&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,420&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,800)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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 colspan="3" style="background-color:#cceeff;padding:0 1pt"/&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,188&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,312&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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 colspan="3" style="background-color:#ffffff;padding:0 1pt"/&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,568&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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="i079eedc5611e42aa9f7b8b809207e9b9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtMi0xLTEtOTQ4NTM_8e468231-3927-4edf-9ec1-7efaaa6f6f80"
      unitRef="usd">776000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtNC0xLTEtOTQ4NTM_5534cb62-76f3-4b34-9f23-2cc61e910a43"
      unitRef="usd">191000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtOC0xLTEtOTQ4NTM_2363f5fa-2d28-4ce6-a4ff-0e9b38c0a08f"
      unitRef="usd">237000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="ib9826cbf5aae42aaa0efc9c3beb3c5ce_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtMTAtMS0xLTk0ODUz_46840164-0d46-4ed7-9d80-1f0f425107a3"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ic0646d282864416d93da63cfb616a046_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzQtMTItMS0xLTk0ODUz_5becc682-5f94-492f-b77e-dce4f5c410ca"
      unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i1ca0ca0692cf4818872b66cf958695b4_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtMi0xLTEtOTQ4NTM_01063722-d0ab-4589-9301-ec8cf4511d97"
      unitRef="usd">831000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtNC0xLTEtOTQ4NTM_942e313f-5135-41b1-95eb-542e41f607cc"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtOC0xLTEtOTQ4NTM_00f64444-0689-4a60-bb91-0b32af10f721"
      unitRef="usd">55000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="ic67fd93cd3364946a314c32214ca7c21_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtMTAtMS0xLTk0ODUz_47330e81-41f5-410d-ae2b-3c516c6aaf64"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i079eedc5611e42aa9f7b8b809207e9b9_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzUtMTItMS0xLTk0ODUz_b3fcf81b-523a-440e-b91a-5e4da49dae26"
      unitRef="usd">776000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="if4d1e32d070c424fb97dbbaf7592a5df_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtMi0xLTEtOTQ4NTM_e84a5f74-2f22-4831-a804-0fa1bdce07e3"
      unitRef="usd">530000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtNC0xLTEtOTQ4NTM_ef171792-649a-43f6-b36d-d91cfdd50e8c"
      unitRef="usd">600000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtOC0xLTEtOTQ4NTM_db88e233-c1a4-4087-8fce-6cb6679e1b3c"
      unitRef="usd">300000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i0fb95d853d8b4fffb569d42b1b86ce47_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtMTAtMS0xLTk0ODUz_b26b9bf1-8eff-4793-999f-2b2e17945166"
      unitRef="usd">1000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i1ca0ca0692cf4818872b66cf958695b4_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzYtMTItMS0xLTk0ODUz_cc0ff9ac-c306-4948-8678-56a14c3aed27"
      unitRef="usd">831000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i17153e64a544469680440c49ceeca9d3_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtMi0xLTEtOTQ4NTM_eebbc1df-8f92-4dfc-9c2d-534363536e25"
      unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtNC0xLTEtOTQ4NTM_aed93420-ca60-4085-a5e9-d6a7d51cf056"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtNi0xLTEtOTQ4NTM_56d3d7be-9ae3-43d3-bb2d-b9afa64a1f48"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtOC0xLTEtOTQ4NTM_13f86298-f584-4517-83ca-2f1e68771a62"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i51fd10ad705a4ab9bbcea32268a4e7d1_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtMTAtMS0xLTk0ODUz_caa2558b-86b1-4f83-9722-1cb38b98d743"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ib6c2a40fe85c4fafa0ee0ac6d1deade0_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzgtMTItMS0xLTk0ODUz_e633aa8b-2092-46ab-8fe0-9e414dbf8d82"
      unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i24861a7c8fcf4ee3aed146ba4412408b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktMi0xLTEtOTQ4NTM_d8088366-245c-45d1-9fcf-942e09848277"
      unitRef="usd">1291000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktNC0xLTEtOTQ4NTM_29928c96-c422-4644-abac-c609693a57c4"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktNi0xLTEtMTA0OTIz_7a57c6da-39b8-4512-8de0-efcc174b41d7"
      unitRef="usd">227000</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktOC0xLTEtOTQ4NTM_65879dd3-ab01-4a84-ba56-5f69df2be186"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="iebf92a81d62c4ff69cb1f5324cfa181b_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktMTAtMS0xLTk0ODUz_adb61d5d-09b5-47fb-9987-ef52e97d93e6"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i17153e64a544469680440c49ceeca9d3_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzktMTItMS0xLTk0ODUz_a2c89f7c-0d2d-4a76-a434-dc9ece4b4732"
      unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i96652bcfac584bada7a427c102168851_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTItMS0xLTk0ODUz_7b2f96d3-68ad-4027-a847-d350462602e0"
      unitRef="usd">1291000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTQtMS0xLTk0ODUz_1d5dfca6-907e-4dca-8da3-ceb022c45b43"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTYtMS0xLTEwNDkyNw_4e35ca7b-52a3-4989-9f03-3176b48bc9ed"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTgtMS0xLTk0ODUz_a1cc8c54-1405-44c2-a938-ab737a59a8c3"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i20aa50cdd1ee491b96306ddecd4019c1_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTEwLTEtMS05NDg1Mw_4aee5571-723d-4fdf-a11e-54bee5c6d80b"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i24861a7c8fcf4ee3aed146ba4412408b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEwLTEyLTEtMS05NDg1Mw_f97ca008-d332-4096-b9f8-bcb14ac1ebee"
      unitRef="usd">1291000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ifc93b5f0ff4a4f40829b8e4e132d3ca2_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTItMS0xLTk0ODUz_9472385b-3484-4bd5-b492-95c2fbddef5b"
      unitRef="usd">8188000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTQtMS0xLTk0ODUz_eac56b98-784f-4840-b482-fa4b003c167e"
      unitRef="usd">2234000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTYtMS0xLTEwNDkzNw_a7421d5c-512b-4aa4-851c-e30d7d571d5e"
      unitRef="usd">3889000</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTgtMS0xLTk0ODUz_cf6a1712-b57d-4f14-a14c-9cb02cdc3963"
      unitRef="usd">6650000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="icbad789e8dea43ef9b0ab85ae8c547a5_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTEwLTEtMS05NDg1Mw_8a83c0d2-c5f3-481e-ad43-efedf3ffc74d"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i32fb706d4a674c1fbcc3266ad01e02de_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEyLTEyLTEtMS05NDg1Mw_a86722f1-d609-43ba-825a-d3bcce228096"
      unitRef="usd">7661000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ib565d1145cb04bb3afb6b2a92a881195_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTItMS0xLTk0ODUz_ea0a3b19-e258-479e-8c7e-8f3e9f073db1"
      unitRef="usd">8568000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTQtMS0xLTk0ODUz_d7eaff7e-b21a-44b0-8ab4-a0798b8004ef"
      unitRef="usd">1420000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTYtMS0xLTEwNDkzNQ_bd56db86-b983-4735-9d0d-2984c4d59abc"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTgtMS0xLTk0ODUz_c91fc41e-81a6-4dce-9f04-a9b5c9f6f164"
      unitRef="usd">1800000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i1de8125d4fe14f2ea6fea79bd28d0a17_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTEwLTEtMS05NDg1Mw_f5189575-51f2-4372-9eec-05b45ff34fda"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ifc93b5f0ff4a4f40829b8e4e132d3ca2_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzEzLTEyLTEtMS05NDg1Mw_568de7fe-3bfa-4865-96dc-ee6dedcb558c"
      unitRef="usd">8188000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i62200600a0034404accdb4a8fb7ec6dc_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTItMS0xLTk0ODUz_494862e2-9ad9-4852-bec2-660b4c0d7f27"
      unitRef="usd">7312000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTQtMS0xLTk0ODUz_1c500fa8-0bfa-447c-be5c-395544b158a1"
      unitRef="usd">1256000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTYtMS0xLTEwNDkzMA_e06e1148-9d19-4abd-96ee-ea41a90be718"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTgtMS0xLTk0ODUz_ac4c8227-7ac8-4827-8680-f16b4f1adbb0"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments
      contextRef="i5a45d04d9d494b7281d44e45b548affd_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTEwLTEtMS05NDg1Mw_291dfcd2-3570-4b7b-b2f4-d2b7b4b80f8e"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ib565d1145cb04bb3afb6b2a92a881195_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMDgvZnJhZzo3YzM4M2FlNmUyZTU0ZjQyOTQxODg4YmExYTBiNGJhYi90YWJsZTo5NDBkYzE2NzRmYTM0MWQxOTNmMDAyM2Y1OTVjYzlhNC90YWJsZXJhbmdlOjk0MGRjMTY3NGZhMzQxZDE5M2YwMDIzZjU5NWNjOWE0XzE0LTEyLTEtMS05NDg1Mw_05950b45-a4a1-466c-a2a9-5f3a738c78e1"
      unitRef="usd">8568000</us-gaap:ValuationAllowancesAndReservesBalance>
    <dei:AuditorName
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMTQvZnJhZzphYzk5OGU2ZmU3YTk0MmJhYTFlYzMyYTg5NjJlNmEwOC90ZXh0cmVnaW9uOmFjOTk4ZTZmZTdhOTQyYmFhMWVjMzJhODk2MmU2YTA4XzY2Mjk_1fa14408-2f42-4aa1-9057-573e64d4dfa9">GRANT THORNTON LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="ic46e85f6579a4849a73b443251f6f283_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF8yMTQvZnJhZzphYzk5OGU2ZmU3YTk0MmJhYTFlYzMyYTg5NjJlNmEwOC90ZXh0cmVnaW9uOmFjOTk4ZTZmZTdhOTQyYmFhMWVjMzJhODk2MmU2YTA4XzY2Mjg_2c077f33-0d55-4d8e-9d22-58bb5cd9cd93">Boston, Massachusetts</dei:AuditorLocation>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtNS0xLTEtOTQ4NTM_6a9764f9-eb8c-4325-85b1-672921555b0d"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtNS0xLTEtOTQ4NTM_6a9764f9-eb8c-4325-85b1-672921555b0d"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMS0xLTEtOTQ4NTM_71ac4f79-0b47-4b1c-9203-cf27881a3c02"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMS0xLTEtOTQ4NTM_71ac4f79-0b47-4b1c-9203-cf27881a3c02"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMy0xLTEtOTQ4NTM_28a70386-0689-43c3-9d6a-e7fb85b1e3ce"
          xlink:label="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMy0xLTEtOTQ4NTM_28a70386-0689-43c3-9d6a-e7fb85b1e3ce"
          xlink:type="locator"/>
        <link:footnote id="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93" xlink:label="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">172,440&#160;</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtNS0xLTEtOTQ4NTM_6a9764f9-eb8c-4325-85b1-672921555b0d"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMS0xLTEtOTQ4NTM_71ac4f79-0b47-4b1c-9203-cf27881a3c02"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF82Ny9mcmFnOmUxNjliOTNiNDNjYTQwMWFhYmE3YzNhYzRlNWRhOTlhL3RhYmxlOmRlYjhhNWEyZmZiMzRiMWE5ZDk2NzljYjdkZjhmNTk5L3RhYmxlcmFuZ2U6ZGViOGE1YTJmZmIzNGIxYTlkOTY3OWNiN2RmOGY1OTlfMzMtMy0xLTEtOTQ4NTM_28a70386-0689-43c3-9d6a-e7fb85b1e3ce"
          xlink:to="id3VybDovL2RvY3MudjEvZG9jOmQ4MzMzZDA5MGQ3ZTQ2N2M4ZjBmZGUzZDI1MjBkMmVkL3NlYzpkODMzM2QwOTBkN2U0NjdjOGYwZmRlM2QyNTIwZDJlZF84OC9mcmFnOjgyOTA4MDU5NzRhMjRiZmRiMmQ4YjM2YzI0OWZhNTc5L3RhYmxlOmYzMjNiN2JmNmRhMDRjODVhOGIyZGQyNzkzY2NlMmZkL3RhYmxlcmFuZ2U6ZjMyM2I3YmY2ZGEwNGM4NWE4YjJkZDI3OTNjY2UyZmRfMi0yLTEtMS05NDg1Mw_6b90a97a-e9d6-4ae3-8009-95d250a07f93"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>124
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M4<R+$@#W'X50+R?E [:?[D;_ U!+ P04    " #C@%!6"L=+(ED$  #6#P
M&    'AL+W=O<FMS:&5E=',O<VAE970T+GAM;*U7VV[C-A#]%4(-B@1((E%W
MI[:!Q/)B S07Q-GM0]$'1J(M=271%6D[Z==W2#F*+=':H# ,6"0U<\1S.!QR
MAAM6_> II0*]%GG)1T8JQ/+*-'F<TH+P2[:D);R9LZH@ KK5PN3+BI)$.16Y
M:5N6;Q8D*XWQ4(T]5N,A6XD\*^ECA?BJ*$CU=D-SMAD9V'@?>,H6J9 #YGBX
M) LZH^+;\K&"GMF@)%E!2YZQ$E5T/C*N\56$'>F@++YG=,-WVDA2>6'LA^S<
M)B/#DC.B.8V%A"#P6-,)S7.)!//X9PMJ--^4CKOM=_0OBCR0>2&<3EC^1Y:(
M=&2$!DKHG*QR\<0V7^F6D"?Q8I9S]8\V6UO+0/&*"U9LG6$&15;63_*Z%6+'
M ?L''.RM@]UV< \X.%L'Y[,.[M;!5<K45)0.$1%D/*S8!E72&M!D0XFIO(%^
M5LIUGXD*WF;@)\:3A_O9P^^WT?7S-$*S9WC<3>^?9^CA"YH\W#T^3;].[V>W
MWZ?H]A[Z4W2!OLTB='IRADY05J+GE*TX*1,^- 7,1F*:\?;+-_67[0-?QC:Z
M8Z5(.9J6"4WV 4R@T7"QW[G<V+V($8TOD8//D6W9MF9"D\^[8XU[]'EWJX>-
MTZR,H_"< W@S002%'280FZ,)*V!;IW*_K2FZ+6-64/3G]0L7%>R<OW3JU^BN
M'EVFDRN^)#$=&0#,:;6FQOC77[!O_:93[IA@T9' ]E1U&U7=/O3Q/:323,FG
MTZSV]92OS)CKL8T]S_:&YGI7#8U9, A#O&\6=<UPX./0;\SV&'@- Z\W+J[7
M),O)2TXO(.M?<))3(+2F7,A8X5<Z6MXQ0^&88-&1P/:$]!LA_9^&PJJ$PS+/
M_J4)6L AB4YSQOG9.2JIVG:"O,K'R:EW/G =&#\YM<]MRX<6)#UT,@BQS((R
MW]1IHQZ7&> <3D6^I.I8R]]TJU+/SM\)CPL<8,]N!9O&K&L5=:U\-PCUD18T
M @6] CW1."><9_,L)NJ0!BFD,(UDIU*S,R0U QD$@P.KJE3&6M)*N6C/A: S
M5QRV67=M+FS';Y'6&+D8#_2LPX9U^-.PB%-2+B@0S2$')PB8D=Y=IV,9:I;7
M'P16BZC&+'#"L,6T:V4[W@&B@X;HH#>1P+T);D7E=M'B-P1G2<GS>JE)\O>J
M+Z4,CIE2C@D6'0EL3U)L?5RGK-[HZ15U)\5H[TN6)IZ=L'WZZ,S\P'-:(:,Q
MPQA[^IC!._=%_#^VQ_R3L:2EC3]'6V.FH]TUZZ%M?]"V>VD_B)16*-Z[AM7W
M",V9H65I:S(:=KP.38T==N'7YMFU<]S /<#SX]*)>V]?XV<F2*[EJ27E=*\X
M Q=WDIS&SO:]P+7:I#1XP<#WK18M<Z?@*6BU4(4CAVFO2E'7"\UH4YQ>JY*L
M-7XCBU952'W U!7O':D66<E13N< :5T&,*FJ+B+KCF!+55:], %%FFJF4'C3
M2AK ^SECXKTC/]"4\N/_ %!+ P04    " #C@%!6R1ME8<8"  #I!@  &
M 'AL+W=O<FMS:&5E=',O<VAE970U+GAM;*U5;6_:,!#^*Z>LFEII-"]0UG80
M"0A5D<:+&MI]F/;!)!<2U;&9;:#=KY^=A(QV4/5#O\0^^Y['=^?<X\Z6BT>9
M(BIXRBF372M5:G5MVS)*,2?RG*^0Z9V$BYPH;8JE+5<"25R <FI[CM.V<Y(Q
MR^\4:S/A=_A:T8SA3(!<YSD1SWVD?-NU7&NW<)<M4V46;+^S(DL,4=VO9D);
M=LT29SDRF7$& I.NU7.O@Y;Q+QP>,MS*O3F83!:</QIC%'<MQP2$%"-E&(@>
M-CA 2@V1#N-WQ6G51QK@_GS'?E/DKG-9$(D#3G]DL4J[UJ4%,29D3=4=W]YB
ME<^%X8LXE<47MI6O8T&TEHKG%5A'D&>L',E358<]@-L^ O J@/<:T#H":%:
MYGL!K0I0E-HN4RGJ$!!%_([@6Q#&6[.925', JW3SYBY]E )O9MIG/('TTDX
M_3X*>O-A .%<#^/A9!["] 8&T_'L;G@[G(2CAR&,)MH>PNF,"&0J195%A)Y!
M ^[# $Y/SN $,@;SE*\E8;'LV$I'9\ZPHRJ2?AF)=R02UX,QU\P2ABS&^"6!
MK=.J<_-VN?6]-QD#C,ZAZ7X!S_&\ P$-W@]W#\"#]\.=-[)IUC?5+/B:1_A"
M113JAE/ $QCP7'=Y:MIO@S!B$<\1?O864@G=2;\.5;]D;QUF-^IR+5<DPJZE
MB26*#5K^YT]NV_EVJ'(?219\$-F+JK;JJK;>8O?GY DP2;0*F;*NF99.FOW!
M&)9:,N&4<BG/P.C3AF24+"@VM-0V)*&H?_<-2F5NY.#?7IY[49QKQ'?C-RZN
M6LV.O=DOY $OSW/:+[V"_[VN+MW:ITS<WA.!',6R$%,)$5\S5?9,O5KK=:^0
MJ5?K?:WCI>S^HRD?@3$1RXQ)H)AH2N?\JXY(E,):&HJO"JE9<*6%JYBF^BU"
M81ST?L*YVAGF@/IU\_\"4$L#!!0    ( .. 4%:SLDZWKP<  %(B   8
M>&PO=V]R:W-H965T<R]S:&5E=#8N>&ULO5IM;]LV$/XKA%MT&^#4XHM$*4T,
MI$FW%=C:H&FWSXS,Q$)ET9/HI-VOWU%R++D\T2Y0[$LBV\?S\YR.]]Q1/GLT
M]>=FJ;4E7U9EU9Q/EM:N3V>S)E_JE6I>FK6NX),[4Z^4A9?U_:Q9UUHMVD6K
M<L:B*)FM5%%-YF?M>]?U_,QL;%E4^KHFS6:U4O77U[HTC^<3.GEZXT-QO[3N
MC=G\;*WN]8VVG];7-;R:[;PLBI6NFL)4I-9WYY,+>GHIV@6MQ5^%?FP&U\11
MN37FLWOQ=G$^B1PB7>K<.A<*_CWH2UV6SA/@^&?K=++[3K=P>/WD_=>6/)"Y
M58V^-.7?Q<(NSR?IA"STG=J4]H-Y_%UO"<7.7V[*IOU+'K>VT83DF\::U78Q
M(%@55?=??=D&8K  _. +V'8!.W8!WR[@+=$.64OK2EDU/ZO-(ZF=-7AS%VUL
MVM7 IJC<;;RQ-7Q:P#H[OWS_[N;]'V^O+CZ^N2*O+_ZX>'?YAMS\_N;-QQMR
M0C[=7)&?G_]R-K/P56[!+-^Z?=VY92-NKW3^DG Z)2QB#%E^>?QRNK]\!@1W
M+-F.)6O]\3&6F[K6E26J:;1M3C$^G0.!.W";Z;19JUR?3V"W-+I^T)/YBV<T
MB5YA['Z0LSVN?,>5A[S/+U6S)*I:D-Q=Z'\VQ8,J@7R#L>Y<Q:TKM^,?YC2E
M7(HHBLYF#T-*F&5"$SJTW,,K=GA%&._VWA35@V[LRB&=$K4RM2W^U<#"-):8
M._*<,3Z-1=Q2>PX8IY0)6-1F6/NFRY4IE)9FK=O:4'X%/R74*57EFD#%(WFM
M%X4EI8$T:%JGD><!BU)'(!EP9S25<>9'R;=TT8SCT2C%NRC%P2A=Y+G90&B
M7Z[ACMZ6^C [R:,N7%(F!T*%T8Y],BP65/JT$4L><9&.TDYVM),@[4_5;5&6
MD :U?M#51F,P$^3N2.3>^'8\<V8C$.4.H@Q"? MY6UE3%QK=81()(FLC\RT^
MQ))R&K%1A.D.81I$>%WKM2H61'\!\7>YX5+ V*6&G-DKC!C^U$.52)$A\!'#
M5(IQ]-D.?19$_]%851X!-/.^7U*99$@B^)8)SV0VGJTTZM4T"H)]9ZJ3_,B"
M)F0RI2+M=FB<RFF6TO^IH&U9#$,@8&=C6QLQC5.H:8%H#7H/>B QH1VM+=!:
MEZJRTQ:S4ZRUB]J45-JBZ*E_JS-)$='"+&4LDG'L?4=!@R(^?P_(E2VJ>U)J
M:",#B;EUM%=X9)(R!*YOR3B-Y3C<OBF@X:[@-V,6CU!*48#<_UK!$HYL<M24
M2LK'(?9]  TW F\KJZK[ I1M&\SQ!$!D%F!@"8!8TC0-)&\OR#2LR%?Z3L-&
M7\"&R\U*$ZN^X I ?744D02\"%S$E*9M HSA[964AJ7T?5OP VGJZV.2"(Z
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
M=&%B+%M?3UH*9ZMS#Z"P4H7[NPKWWUCAINYBU.S;77RUHC#!A_T%,F0(*<:
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
MOFV^E-FJ?D7975:6V;(^7/!HSO,J@?C[?9:5+U^JMY[M7KQW_G]02P,$%
M  @ XX!05@2*ZL3Y @  P0<  !D   !X;"]W;W)K<VAE971S+W-H965T,3 N
M>&ULK55=;],P%/TK5ICXD-B2INU@HXW4+46;Q-:R=""$>'"3F\;,L8OMM!N_
MGFLG"]WH/AYX26SGGN-[KN-S!VNIKG0!8,AUR84>>H4QRT/?UVD!)=5[<@D"
MO^12E=3@5"U\O51 ,P<JN1\&P;Y?4B:\:.#6IBH:R,IP)F"JB*[*DJJ;(^!R
M/?0ZWNW"!5L4QB[XT6!)%Y" N5Q.%<[\EB5C)0C-I" *\J$WZAS&?1OO KXP
M6.N-,;%*YE)>V<EI-O0"FQ!P2(UEH/A:P3%P;HDPC5\-I]=N:8&;XUOVCTX[
M:IE3#<>2?V69*8;>>X]DD-.*FPNY/H%&CTLPE5R[)UDWL8%'TDH;639@S*!D
MHG[3ZZ8.&X#._@. L &$]P&]!P#=!M!]+J#7 'JN,K445X>8&AH-E%P39:.1
MS0Y<,1T:Y3-ACSTQ"K\RQ)GH>'*>3#Z=QJ/9.";)#%]GX_-90B8?27(RNAB?
M3#[%XXOD%1E_OCR=?2.OIU2!, 48EE+^ANR2RR0FKW?>D!W"!)D5LM)49'K@
M&\S.[N&G329'=2;A YET0G(FD5F3L<@@NTO@HZQ66WBK[2A\E#&&=(]T.V])
M&(3AEH2.GP_O;(''SX<'CZCIMB?5=7S=!_@20PW@A3-$YB0Q,KTJ),] :3R;
M7Q4S-^3[:*Z-PIOT8UOU:_;>=G;K+H=Z25,8>F@?&M0*O.CEB\Y^\&%;Y?XG
M6?R?R.Y4M==6M?<8>S2CUP3R'%W(EK42:)V<_8:,+- RB36F%66<SCGLHL?N
M:LH!__,5:&./8NMO7F_8=QM:UUU%N_V#7G?@KS8KN"4J#(/]NU'QOU$'[SMM
MS!W%_59Q_TG%<Q"0,R<95:$W"O0:A1<[O2'X!PG-:>W*V<^J5KI-:/^?Y()[
M(I^,B!^+J.7Y&^96@EJX)J%)*BMA:B]H5]L^-'+V>V_]"/M3W4[^TM3-[8RJ
M!1.:<,B1,MA[A_FHNF'4$R.7SD+GTJ ANV&!/1:4#<#ON93F=F(W:+MV] =0
M2P,$%     @ XX!05GM6^*;?*   C(4  !D   !X;"]W;W)K<VAE971S+W-H
M965T,3$N>&ULU5U9<]M(DOXK".W.C!5!R;+<=]N.L.5QCS>ZQXY6]\S#QCZ
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
MA[A(WAZ1K\YA_4QS:V?26#A4"%LW+&^FQ,/C6[Q1 C:DA>@F67 ]8C>.SV^
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
MN/:@S5#PI<R%N81% 'Q61*Y%<M*I9(2O4S=[.<!NR-9#M2ZK2N,3EI *3TJ
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
MO<)B](<46KH%]2%"N7Q02A?6D4H1 :X"J;8$&HR[08\G_&:+X/XJX(\-6U3
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
MXM!X!3IO-)7NN/$.ID=S_0502P,$%     @ XX!05LACY2WV P  "0D  !D
M  !X;"]W;W)K<VAE971S+W-H965T,38N>&ULK5;;;MPV$/V5@1JT-L!:=VG7
MW5W =F(T19P8<2\/11]H:=8B(I$*27GMO\^0VI77@+T(VKZ(MYDS9RX<:K%1
M^HMI$"T\=*TTRZ"QMC\-0U,UV'%SHGJ4=+)6NN.6EOHN-+U&7GNEK@V3*"K"
MC@L9K!9^[UJO%FJPK9!XK<$,7<?UXSFV:K,,XF"W\5G<-=9MA*M%S^_P!NT?
M_;6F53BAU*)#:822H'&]#,[BT_/,R7N!/P5NS-X<G">W2GUQB_?U,H@<(6RQ
ML@Z!TW"/%]BV#HAH?-UB!I-)I[@_WZ%?>M_)EUMN\$*U?XG:-LM@%D"-:SZT
M]K/:_(I;?W*'5ZG6^"]L1MF,+%:#L:K;*M.Z$W(<^<,V#GL*L^@5A62KD'C>
MHR'/\BVW?+70:@/:21.:FWA7O3:1$](EY<9J.A6D9U?7FO*K[2.#ZY9+RX#+
M&MY]'41/D;>+T)(-)QE66[SS$2]Y!2].X$I)VQAX)VNLGP.$1&YBF.P8GB<'
M$=]B=0)IS"")DN0 7CIYG'J\]/L\?NXP_'UV:ZRF6OGG)=]'Y.QE9'=_3DW/
M*UP&=$$,ZGL,5C_^$!?1+P=X9Q/O[!#ZO\C4?\&#I^/^Z1BGXTK1O306:U!K
ML W"6K5TP86\@R,A:4<-AC3,\2E0 K&[13TET7UB^.  WT#*YGD\C>>#:&L"
M,9!D+$_3W;#;!]'U6MVCXV @RUD4I9"5;#8KX /2[6Q46S\7BC.6S6.((Y:E
M!5RHKA\LD6FXKC=<H_?+J+7UBSQE19%"'K$RF\$5E\.::F'0SK1%8_<BD)0L
M+@M((Y87"5P.6@H2'/'6XL'-#10L+6?TS;(YQ&7.XGE.(_E4Y,37F%-J2]70
M#2UWH:R1ZJ82W/>KHWG.LEE\3).21?'\F()4SED99VY2LCPKX'<*O/.(RT>H
MA>F5&1/2'T[>1M@&..60'**6)HS3>1.7+,UG%-'(B[]*S,L6K(@R+TO9=DEE
MU*(-M4*?).JVT"HSXI:Y%SR!3ZY2R)@[8;2?YAY HS-BP"K'NQ[&=OW$MJ:X
M:_5(-+@AW-',5';"A=SZ^382/QG"$>Z)<57J+S-US%TF4;MS?_.)YGM9*XE&
M<""3OPT2H=S6Z!&]#E0F1.JCL@A)<NRC0O2%K-J!>IO3#SXJ^7/%3>-JSADB
M6A65UAWY,_I5.PC/\F@'%#AC(V%I5"MJ+W9C:1A+ED N'.8EW2AS\O]F.8E8
M01?FN[+L9./]+,>O9SE-?9)?:G3AWO/4(<7&/<*&B W2CB_5M#N]\V?C\_8D
M/OXD7%%HA:02PC6I1B=E'H >']YQ857O'[M;9>GI]-.&_E50.P$Z7RM*PG;A
M#$Q_/ZMO4$L#!!0    ( .. 4%;D,HHOYP8  '41   9    >&PO=V]R:W-H
M965T<R]S:&5E=#$W+GAM;*58;6_;-A#^*X27;BV@VI9DQTZ6!$C2%2NPK$6R
M%PS#/M 2;1&E1(^DXKB_?L^1DBT[CK%U'Q*]D'?WW N?._EBI<UG6PCAV%.I
M*GO9*YQ;G@\&-BM$R6U?+T6%E;DV)7=X-(N!71K!<R]4JD$R')X.2BZKWM6%
M?_?)7%WHVBE9B4^&V;HLN5G?"*57E[VXU[ZXEXO"T8O!U<62+\2#<+\N/QD\
M#39:<EF*RDI=,2/FE[WK^/QF1/O]AM^D6-G./2-/9EI_IH</^65O2("$$IDC
M#1R71W$KE")%@/%WH[.W,4F"W?M6^WOO.WR9<2MNM?I=YJZX[$U[+!=S7BMW
MKU<_BL:?,>G+M++^/UN%O3$V9[5UNFR$@:"45;CRIR8.'8'I\ 6!I!%(/.Y@
MR*-\QQV_NC!ZQ0SMAC:Z\:YZ:8"3%27EP1FL2LBYJY\$7+(L7"X&#BII89 U
MXC=!/'E!/$[8G:Y<8=D/52[R704#8-D 2EI -\E1C>]$UF=I'+%DF"1']*4;
M!U.O+SWNX)_7,^L,:N"O0TX&%:/#*NA<G-LES\1E#X5OA7D4O:MOOXE/A]\?
M 3C: !P=TW[U<NC_C1S[I1#L5I=+7JV_LTR%E]P(MC02QTRJ=7B9XP6.LG&2
MUC.CK66YG,^%$96CHZ-R5)Y@2F><SHMEJP)KS&WULTQ7>9TYRR3^2%G8V6?7
M2C$]I[U6=#%DBELKYQ+6^4:B6C1;^NP6>$ <K4C)O0W_2B\#"J>9>'*BRIDV
MS F#,\!=@.6E&'==C(B!U4K -9L902J SA(X%)8H9\)LBHM%) B4*^_G2G=M
M;BUQF)[+N1/B$"A7P+Y7P+-,UY6#JZ!*!@\(52Y:141!(40-;EKP6W?1@SBM
M@\TC86I#Y!\+K7(F2R3W49242EEEN(#J;,0H B:\UC,E%R%?$1,VXRJD BFJ
M;=B+7= F<[[&([G]B/KA,T1SR=>D!(Y3*N$])Q @<H03=98)6,W%4Y^JL0UH
MI:$29TYF(6;P- /&BI.>UN_GWOI".9"M?K?2D=X<!H"7/U*&UJVP3T?!P^(:
M/2W3)9!G0#VK75A&77!*DY6+"K69 1 S1-Z6G!X 62=6Q^$X[;C:KVN4!EHF
MKBO(GDRCL_0L&@Z'5!(D&4*+]_%TV+Z?:5?08NS7<#,\IC_CMMBFQ <;ZL:C
M*:F+Z#Y)QN&^,34<[D$@6]'&&"7?+H5OD&K=-;WK$&6M"?1* C$/14QEO1(*
MF2A#+_#;;,CRJI!9L<,BOB.+D")'19)I).(+\MB>:&N1N=864ZA!J:1;AX#&
MHU'C9SP>=;R,D_2_^/B^=C4"=SRVQ&&<_% 87BQ[[4^UKBV4VC?G[ _!36A\
MNP5R71(3D-F4G;"S:#1)Z6'$3E$,8[H=LU%T-O&WIRR-)F<QW4YPFX[3<(HX
M*,>P>!Q-AV?0 J_3]-2GAKBMH1K?CV#JD:M:M/PR#ZX=<@C;,:Y $)[P9_&%
M_ F*=3).?"1]6%%)XVD<GE_@T2;$\7Z(/U3;S6%]IPS@@/%(/)\$+%0QG)WZ
MZL6$5B,!;^<:A3*KI?(L > /8(UBIHVN%T7$[E N/"M 8JXAEDY9@K/72))G
M;-^XR0G.*DR+B"+(":Q S)QY-%XZ#%T",@V'7^,!+&%W&:C@UJ]ZYO A",UA
MIS>(+9)"VJZ/"'^>2Q+ *4,-2IW3MCE"%Q!'+761T_52!RPXB=+L-!,- )*4
MP.1;DO0F">O&X)8#\]J0.E\DTEC'*,+D.)1MN<EW1:#<;?YT3@V5.E^BV3QA
MN'#(,CLYBY))J _B!,2L]W'O3/GS;'M>][/%MOHPEO18X^4MB-<W(JK4&W0J
M@&</-./:=DOKD^]MM#%D9^6G<)&_15\P^*C8G!5FJ)<3@:3]])6'DO9'KS:-
MJ*&U;C\Z5N[[;Y_5_D$P:,7HVUO??7$0IDE_VM0I*1_WX^;I*]$= G3'*T#P
MX<J4IGD0/(QVW$Z'>HY6*&Q#GZ!+]'6RKD/=57E3<-)TP-.<0.=IB2JB=1Y:
M/F;$4&A+I(Z]1C$)K^EGC1PDZ9L0GHP;LZ9=.^35+1FZZ$SZ,O -)PR8+52*
M'!BDSL),\D48'34,US#%/KN'SH)IB4L30E%PLQ V,%\T2B:=%C(,XP+U ,Q4
MJLX#;?;N=UQL-!RNW0>'2V!>6/C8F9CO]TJA0\([P\<S_QD*0X4QF3YG6&>^
MM*%I8_/)I*'0T!FC23SY"@8/;/#,__]Y@@\/<H%=#J7&".6U.+V?SD,?7X/.
MIS!X>^$_^&ED!@>$K^+-V\UO"M?A4WJ[/?P@<0?[LB(2G4-TV)^,>X'MVP>G
ME_[#&M,;.H:_+03/A:$-6*?&U3Z0@<TO+5?_ %!+ P04    " #C@%!6"U2I
M#E<#  !0!P  &0   'AL+W=O<FMS:&5E=',O<VAE970Q."YX;6R-5=]O&CD0
M_E=&>]4ID1#[ TC2'" !N6O[T"I*VNM#=0]F=V"M>.V-QPOAO^_8"QLB)>1>
MP/;.]\TWXYGQ>&OL Y6(#IXJI6D2E<[5UW%,>8F5H+ZI4?.7E;&5<+RUZYAJ
MBZ((H$K%69)<Q)60.IJ.P]FMG8Y-XY34>&N!FJH2=C='9;:3*(T.!W=R73I_
M$$_'M5CC/;H?]:WE7=RQ%+)"3=)HL+B:1+/T>C[T]L'@7XE;.EJ#CV1IS(/?
M?"DF4>(%H<+<>0;!?QM<H%*>B&4\[CFCSJ4''J\/[/^$V#F6I2!<&/53%JZ<
M1%<1%+@2C7)W9OL9]_&,/%]N%(5?V+:VHT$$>4/.5'LP*ZBD;O_%TSX/1X"K
MY U M@=D07?K**B\$4Y,Q]9LP7IK9O.+$&I LSBI_:7<.\M?)>/<]),QQ58J
M-8X=L_FS.-\CYRTR>P.99O#5:%<2_*T++%X2Q"RCTY(=M,RSDXPWF/=AD/8@
M2[+L!-^@BVT0^ ;OQ 9"%_!%.Z'7<JD09D3H"&XDY<I08Q%^S9;D+%?(?Z_E
MH?4R?-V+[YIKJD6.DXC;@M!N,)K^^4=ZD?QU(H9A%\/P%/O)^_E_2/A>(N0E
M!X\$4H/S6V'M3NHU;(1J$,P*U@?K+7(^!,'**&Y8@K, ,0UQ$NG\&F:5:;2#
MN5!"Y\&2T7QS6"W1'FXO@0^0#8>]Y/(*N'FX-33@4RL"K'#/@LZRWN!B=/X.
M7\IL:>\R'< L?VPDR=#1;'@_6\"]M+(AF!4;SU# 8L=(C4[F!)^JY6<XXT9G
M+F?@FV'767H.['7T\3UI:6\XS-Z3EH50L][%(/%\(+FRPK'0NA&^]H3:D:3C
M)/>X@S6//!YN#L* 8MDLKT;KQRP(>&2H=,)/+/9+2.1M^ZR%V-3X*V'*YR\O
M&)>H)&[\;3M@JXJC!"4?4.T8)C1HX_S"A5)8"6F?R\"?6*R-=;XZ&LT,G!S$
M@D)@+^NF'TIK8:I:Z!T4L@C,%G-C"Y!\*FW0PPFU/J$6E=A'VI4;5Y?/5GO+
M/> $^O+IO]8Y\=&4JY 9_2QG3;X>VX'7G7;/Q:R=DL_F[5OSE05)3:!PQ="D
M?SF*P+;SN]TX4X>9N32.)W!8EOSDH?4&_'UEN)+V&^^@>T2GOP%02P,$%
M  @ XX!05E/LH3P3!@  ?PT  !D   !X;"]W;W)K<VAE971S+W-H965T,3DN
M>&ULE5=M;]LV$/XKA%MT":#$>K$M)4T")&G7]D.[HNDZ#,,^T!)M$:-$EZ3L
MN+]^SY&*[=1.L'VQ*8IW]]S=<\?3Q4J;?VPMA&/WC6KMY:!V;G$^'-JR%@VW
MIWHA6KR9:=-PAT<S']J%$;SR0HT:IG$\&39<MH.K"[_WV5Q=Z,XIV8K/AMFN
M:;A9WPBE5Y>#9/"P\47.:T<;PZN+!9^+.^%^7WPV>!INM%2R$:V5NF5&S"X'
MU\GYS8C.^P/?I%C9G34C3Z9:_T,/'ZK+04R A!*E(PT<?TMQ*Y0B18#QO=<Y
MV)@DP=WU@_9?O>_P9<JMN-7J#UFY^G)0#%@E9KQ3[HM>O1>]/V/25VIE_2];
MA;/C;,#*SCK=],) T,@V_//[/@X[ D7\A$#:"Z0>=S#D4;[ACE]=&+UBADY#
M&RV\JUX:X&1+2;ES!F\EY-S5A];Q=BZG2K!K:X6S%T,'M?1R6/8J;H**] D5
M2<H^ZM;5EKUM*U$]5C $G@VH] '43?JLQC>B/&59$K$T3M-G]&4;)S.O+WM"
MWSNMJY54BO&V8GL>LS?2EDK;S@CVU_74.@.J_'TH#L'*Z+ 5*I]SN^"EN!R@
M/JPP2S&X>O4BF<2OG_%AM/%A])SV_Y:H9U4<!K@?CIT='G9*C2*T3E1,SYBK
M!9MIA6J6[9P=R18[NK,(K3T^9^^,MI9=EV77=(J3R"=TEEO=+)2@)R?*NM5*
MSZ6P["5+BRA.<BR.DCS*1Z-C+),X2O.,W7KR"X/2AR)4L*WEPK)Q5&0%.\JB
M8A(?LR0ZRPOV2;<G)4S  N-S(P2Z!F!GHYCTYC@VR=@-5[PMR2?R A03S13:
M'V@&P]DH2L[&!"9-HKQ(/)@T&B6C_^W6*$I[M\91FGFWBNBL>-(K^#R&(T=Y
M5)S!;AI-BOPIM_($;HW.4AQ+"B*O,W+:^1[7"N?;.<L0UPF.A?]C]NI%D2;I
M:_;5\ I=G8XDI 8_VY?/1RB!#WD637(?H0E%*/<12J*B*, :HDG;-]N5=+5G
M"B^_=])*OPFE=]>W[$X:V2&8U9*L5>QV#2M +DO+WC73]^QH@&.#8^:I163K
M#+1][[AQ@ ,M/E]':-]X=!IQ0H#2Y#CRQRDIO%T'RP;ZR\-96G+588\[]A)D
MBN,HCN. F[=,6"<;G^?.BEFGF)(S0:9SMA;<V%/REV \MFG@!9GDBX71]UZ#
M6K.7HRQ*BV  *N1>?2T,CAJIUH$5A%2SZF!BJ8.5ASGD:OBR$NAB  Q=O-'&
MR1\$!T(UQS_I824W9DVUZR- B'X(HYEN>U=:JY6L/(P'1MS1_0*GOU)&JZ4P
M5C )ETOWT!%N?_OVX<U)<L80!S!,EJ0/B6/3SJ(-H7BD#UC,X-1\+GR4X,"2
M+F[H4+J=GRA<T%4?E @"I>HJ KH7L0BD,&R!O+=.<N6Q2$/EP:K.D AAL@*,
MK'XB3GP*KRRU,O)76J_16I*-<+&VF$2\'HB2><H%Q;44QF'$V;@;$OZ+93/9
M2B=ZZ/NIG7&IO X!9TN-T/&I5-*M048+BY0:>F'(THX;9<W-'"PE/R%L-PH%
MW%'$#U]=C>YP>+IFJUJ6ON*D^3G!XKX4(CA";X'(A#<AGYMZ45:S1G"Z!P/@
M[<G',%$?>T@]4.DHS9B)GHO)+L=E>X)"*8D>N[49@&W-VT!K!(Q/E<2P4T4[
M'<;2W>1IBN1P8IVSLA)>E(?1KUI*JTW$B(N!&R 72B@4*D?DI@^<X%1X)865
M6@>W-9OAJF.-KH0*5-CVAEGG:&@ BT6+(*%>!6]"C8I[C,T@%OI+J&). ?!I
MTW9?!"B6DF*+5&Y)2'$ 0_LJP96-4=-'=#^H!ZCS=H.S[P0A&#TRGS!!KC_<
MZ<@69O.2R$)1FB$,8)IO=]XE' +8&962+YM^"K![,\"?$ FSX.-+Y#JP%468
MT6T;)5E.#R.Z[K"%Y1C+#%T2RPG=[;B-L<RQI(G@ZQ9 $L7%9'L]'YJOACM#
M,9KEW(_^-,L 0YB/-[N;KXOK,%1OCX=/DX\(J&PM4V(&T?@T'P^8">-^>'!Z
MX4?LJ7;HS'Y9XPM)&#J ]S.-5M4_D('--]?5OU!+ P04    " #C@%!6+UU0
MN$@$  "I"0  &0   'AL+W=O<FMS:&5E=',O<VAE970R,"YX;6R=5FUOVS80
M_BL'M>@:0+,E2K;EU#:0I"U6H$6#9FL_#/M 22>;""4Z)!7'_WY'2M;RZA;[
M8I/'X\/GGKNCN-@I?6TVB!;N:MF89;"Q=GLZ'IMB@S4W([7%AE8JI6MN::K7
M8[/5R$N_J99C%D73<<U%$ZP6WG:I5PO56BD:O-1@VKKF>G^.4NV601P<#-_$
M>F.=8;Q:;/D:K]#^M;W4-!L/**6HL3%"-:"Q6@9G\>EYZOR]PW>!.W-O#"Z2
M7*EK-_E4+H/($4*)A74(G/YN\0*E=$!$XZ;'#(8CW<;[XP/Z1Q\[Q9)S@Q=*
M_A"EW2R#+( 2*]Y*^TWM_L ^GHG#*Y0T_A=VG6^2!%"TQJJZWTP,:M%T__RN
MU^'>ABQZ80/K-S#/NSO(LWS/+5\MM-J!=MZ$Y@8^5+^;R(G&)>7*:EH5M,^N
MSHI"MUC"ASM*LT&S&%M"=6OCHD<X[Q#8"P@Q@R^JL1L#'YH2RX< 8Z(S<&('
M3N?L*.)[+$:0Q"&PB+$C>,D08^+QDA?P+OF>YQ(-\*8$'S"7!OX^RXW55!7_
M/!=SAY@^C^@ZY=1L>8'+@%K!H+[%8/7F53R-WAWAFPY\TV/HOY23HPC/\WL,
M"P<#'@R%HF8SEDRJ KM!J)2DKA7-&MZ*ABRJ-:2A.3D%RA'6.>HA3^XG)G.%
M6A/ EN^I=:VAQI7<(5H%5Z0[S^%"C4+X;,L1M>1-*XSP[?DV/H'7$,]#EC$:
MO'F5L9B]@T]-03#4N$2N=C2Y]XZS<#))(9F%\W@&5X2K19]@.ED3;;#\CBQ9
M&!,M\H[G0&U,3>KN$BLT.GJ@<BG6'M+ +(SG,?U.9@R^\Z([:!)FZ0S2<)I-
MX0?7FC=V_V!7&B:S";FE; 9?23,-;!YFTPFP+$SBF$*9)R%+)F[ PC1A/M(_
M25RK+)>=YB7J[CBZ9;WP%Q0L;_:_&9*5F-\7BE+S1$C1%+*EYG/WT2/]R?TU
M2\,HC<(HB@B<6[H_]I C"8K.S_4&(<#7PBJ744ID$CI>EA+O1&JWJO&L.ILO
MF7HKU;Z3L()KW)/<DF8C']E3%EPCG>@*2=.YVE'EYF%*^RH$=8NZ+[Y6_[Y'
MKF&+6J@R].EU*[POW)QDH/J '7=U5DANC*@$+51:U1!TZ?@L>"XD:8<F<%48
M/"[[ /KP+B@52HK2U^MYCWWEKE8#HADXV0W<M%Q;PJ;8?>WO-MBMR_XPKR\G
M?8N6A#CH4FPX*3J [9[6$^R0E*)PNLXS3_KN0(O[S#[NPHBJC$HQFL*E5K?"
M^ IU-=4?Y7I$&..B+UOMTN%X=/("E>ED"A];60DI#ZE]AB.1\A5]\A,R<=\5
M_X-*'&:S7Z3"PCG+?D;%W2A=HSYW/8_O?3YKU&O_2'#5V3:V^Y(.UN$=<M9]
M?O]S[QXQ7[A>"Z(EL:*MT6@V"4!W#X-N8M76?XQS9>G3[H<;>DNA=@ZT7BEE
M#Q-WP/ Z6_T+4$L#!!0    ( .. 4%:[,R+JFP4  #8-   9    >&PO=V]R
M:W-H965T<R]S:&5E=#(Q+GAM;*57VV[<-A#]%6(;M"_;O<AV;K4-V$Z+]B%
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
M&KV;6%%*@V_TT?0]&57Y\DTC?=RA&V(_^0YD?&HOS9_B%KT#.FAD6"E;><P
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
M_&PVCUY S$&?.)M-HW0Q?=BFSZ8OXF@>+X?S-C3BL(OY9#[%4)ZE89'WQ&=
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
M\^N449H^[Z??+C:?Y<==]_R5AFG_;0-H5JP;*%SE*%^/-,QBJI&#F+F%L>D
M:C6B>>/2_WDD>&A!U98'0-P?.C&QK9T+^V@[1N9E<X-R8&##(0KX\>%QB3<Z
MO>X&U-'G/<J=[3#,_#2TQ6B(?X::COH5]<( ZPP%,_",J^D7T*!A*ZZ':EC5
MX3@?V&TTC6WNI4E@+0&?H04 ;/'X,D!2L9?GR8$$,%N6G"?I<5;D95DX)$LM
M"!PG"[H2]8*] V,<D=LY)("^@8EE8RT)K&3C&9.:PA9"K-'01JO*]A+:G8N>
M012\A8=H,G=S95NXFN?J,);=+L>1U.K_X4SXFT,FW7*-1[PA,K#>@O(R:"PG
MO=L!(=NYOQH0<+H#068(J];X#8*#7>\AP$7%;;5YU/!3&T%@SD>@H;:KO#8V
MBU;!'JK+;[X]>"_LO:C$XPXTR0L"*"G$:Z30BY/4_@(F!30##(N-!Q4(HD%L
M40<;0*Q9 \)DIK"&.21<C%>;:9SB3SS+R2/L(DQZW7VAJT<E %-N&]@3(W&"
M)PP")X'9/"%1[LT#1+@V#?!6RP0W/IAP)6.WW-/!>XF:R;5Y^X*GU+;1]A5%
M/]J_X+FU[S4.R^W;H5^I!*L4 -T5D 9^GDZ(M&]<[!\MMN8MQU)H+6KSN&%P
M>I6X .970NCN#PKH7WO=_ U02P,$%     @ XX!05OQ:\#-8 P  C <  !D
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
M*Q&GR,UZK55B=)47^?/6WBCV5B@%ZMMIG^6_/(W91]ET(\/FN =W+#)!Q5V
MLXA<7O,DIFWOX+B^V8@@4B;M$M19C1D" (G]]8DMP7MUBQ'?@(^8?<@.!X:-
M\R#SK@QFVN;'\;UE9R#PMUS.'U"$SX\9C6"WG2F+4YCD<CU:40_]F+-PA=))
MHBU,J+2F-<=0WBN88E72FAXI]AN5.%:JKG[:%TV:P./:(B=ACN\7]OT'H7NC
M(2G634WMMXDM4_'F,8=M&3LB [,'>IKH[(K:UMGU%D4_72A[CM^7(KXK10M
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
M,HE_O$(V'\CFU]#_25[^%1"<WF]8_Z[]^Q$I+@6KBZYF5HUIJ&1-M:OA>R[
M'&2GF2CU#[?P.S+ELPV4*VQV%-=3ONR2V"6&-=.\(-QO[!6R::@L>[/4+[0A
M7$H0)-,LS.,I[9,PGV3^/IO#0U51+8.LH.1U9ZL9J#Z*)V!'IDH-"4FG0++C
MC-8DSN#>RA&]2\;)8'^\P<\=?V8U"O,VI3R<3>:TS\-Y,G'4QO,4MLZ^;&V'
MT6 DM)TJ#M0E( ^GR9A(Y"'D\VDXM@=K+@^S:1(F\WPP4PVAL& A6%Y_9TRM
MA^O0I^><&>7$QMM%/?$F;-1#ZIBZ1=?SZM<0=IWQND(:TBGJSJ;-)?1+NFV;
M/(^N0"<K&X26<NL(PPX+UI&#I/CJ(9DP_.:D-()'I)KBA8V[3T\GN+'!,:RV
MC--)&%,881*//=\LG*63_VTX?I6P>=Q^["L+7_Z#K0O.V1H],V%=^HK#M1".
MWNI5T=D\:5#MW=34E)=.&#]:AM=A,-_Y>?1%W$_U#TSM.95&C16IQJ/I. #E
M)Z6_&-FZZ;23AF:=.Q[HSP4J*T#?*RG-Z6(-#']75G\!4$L#!!0    ( ..
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
M#J7QSU.<$^+X:41NEW/?RI*F&?K!DUM1-GO^;'B2OS[B[WCO[_@8^O<GYG_
MB)N+*W&CG.IP7ZVD*:D25YLY.4-!E5Z\:^;OQ2<CD 1J<"U.4QYZ(M3$$6RE
MV:"C .F@*K46=A'?H>]]D*929BE\+1$7?O-=]G[*();]W!-2:(P76%5&E+#5
MA9@MJ87F'F/H0&5MK+;+3>S)BD7?$;K4;/KB=_@A'^CN'(!70@5_J*N\H/L6
M P((P?(S"QUP?/[LK!B>OO:BE*V<*PU ,((Q-#[4\!?2>.E%>%F6F#=.!HJ6
MELAYJ 4*[ NDK-N@N7&.(\FI4JRH5J4F4 B!\!;N=PL48^?(^<2C[5Q9@Z%H
MH4"[*!^R6TLOC U0!H9"D$#D@,&/\!TIMUI5DFDN4/NF9#GD*1#F*X:ZN.FD
MEG/H]'OBMU#U.?F?X#+G?GC"R1^^.I+\(YG_&AA9CE<IT:VS*\6IAFA%U'+F
MG0'$BY36E8K3W]M%6 -28 LA^A7F8J2J&BP.1%[JC4<N]Z7PJ\6"2@$,-D"0
M0\!VY*X@?AB^&O5.1F>]/,^A4>H.8PM9]K5HY29&)8F=YKV3O(AB70O=4EMT
MU+(O/IA(>V$[AYS>==*%Q .-DC^.E:/2.L:7HD3(5. <+:VMU@K!4PE(-K8S
M(1F%N7$TZ2B.%A.+7GY=#;+Z@DBPLXFK(U[#+/J8;SSYQ(@+UW'>'M$L8&Z<
M1Y.AEEQ,:"QXW1#+R3F*5#U4!!B.>HS*;@$C189)I+L.\-2TVD8+;."6-@)Y
MP"DU"B>+V-&'T/C8ZUCWR6?N2P.F=@6#NT"_V* \1(LZMU7_J2$[.-B$#;EE
MW/>,C-"FI;B_W7]27*1-^B">OD<^2K=4F)6:%E#-^Z<O,^'2CD^'8-NX5^<V
M8$O'QSK.+1; ^X6U87=@ _L/K=F_4$L#!!0    ( .. 4%;@_Q^L\P4    .
M   9    >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;)57VW+;-A#]%8SB25]8
M76W+B2\S=M*TZ2233-S+0Z</$+D4,2$!!@!%*U_?LP!%48GL21\DWG879\^>
M79!7K;&?74'DQ4-5:G<]*KRO7TXF+BVHDFYL:M)XDAM;28]+NYZXVI+,@E-5
M3N;3Z?FDDDJ/;J["O8_VYLHTOE2:/EKAFJJ2=GM'I6FO1[/1[L8GM2X\WYC<
M7-5R3??D_ZP_6EQ-^BB9JD@[9;2PE%^/;F<O[T[9/AC\I:AU@W/!F:R,^<P7
M;[/KT90!44FIYP@2APV]HK+D0(#QI8LYZI=DQ^'Y+OJ;D#MR64E'KTSYM\I\
M<3VZ&(F,<MF4_I-I?Z,NGS..EYK2A7_11MO3Z4BDC?.FZIR!H%(Z'N5#Q\/
MX>(QAWGG, ^XXT(!Y6OIY<V5-:VP;(UH?!)2#=X IS07Y=Y;/%7P\S?OC',B
MMZ82;Y2EJXE'3'XR23O_N^@_?\1_-A?OC?:%$[_HC++# !. Z1'-=XCNYD]&
M?$WI6"QFB9A/Y_,GXBWZ#!<AWN*1>!]\05:\4W*E2N45.?%:N;0TKK$D_KE=
M.6\AC7^/I1X#GQX/S.WRTM4RI>L1^L&1W=#HYOFSV?GT\@G8ISWLTZ>B_T!A
M_H^_^*#%[XTFL8R\)@*LB%>FJJ7>/G]V,9\M+YVHK>+.%"DJRJ1 :+K)<0*J
MK*"'FJPBG5(FI,@YJO1">?B54N-,B[<Z,YJ<DF/Q!^('FXS L-D&)Z?66N4J
M97-9F08'DP/&6M/#SZ;5,,+:;(4SI3>DO<&2+A'2B1:MR\<4J+%*6+&W$-%[
MM0V)'4_ %\#;4L2$-:2'!^9:!P#IFZQ),>,8/*Q:+*;- >A,5AA5PILA?S^Y
MG2O/&?K2J!ICRX_%O0)9P3+#6IRJ[U@YX%\4G!V&%^"TRA=/I6# @".4-D9E
M- F&(V8J#4 D@N>QQT\X+W4F;>9X^<Y"?&DD>F$+6G4&[[HDK5QQP.>^;!VG
M##N6=0A;ELZ(%9$."2B]9HA65K5H:D07,LL4(Y+EXQGEC0T]6L%RS419Y3XG
M(L.XMD[E6^P8=5U"E@42BIBA13X,:$\E6A$YC<4M4 5*2O\XY9928S&PQ,GI
M1;)8O$BFTRDK>&VY;S =0#)?QV:Q5 :Q .S)8IF<GR^"?6"46T8!W8&*=TQN
M.]')(:%07$94Q7B%W*"/A,;^BTVU5%_EJB2QD643!/.5K$G$R46RG+[X?DW,
MG5IN66QNB+&#,E!YWS-NT 4_T#),L@G%8=EY%]D_F24OSI<!SF#5#%LM*B;7
MK + 3(T[A&4:)*[ @EHUL68 A!*/Q:]#U@,C05*64-T(46G,:\GMA)JG1!E'
M3@D2R>*4.S;/]DZIM%"U95@G\V5R=C[=%3S(P[ "N2NLCT9<]F]@<87P9!^3
M)81\MS'H-%DN8X6D99#8$+0/2HCTRCJDS-CFT\O]=&9IAINS2V%TEX9VIE19
MX.W>XQ KC'4^8 1+#N2"SG$'VR55*Z#>;9FA0KZPIED7![,G5QJX%3K1[6(*
MY5S#R?# T)@EX28FG39>;)$P- NMP7_0QUW>/"2"EE+3E*@1;#92E4&^?46.
MJ@K0T8%YPQ?)(Y%!&SVD/.B G.]C!G\%'5TQ6H6] $MZ] RSA/Y:\[3C]2 _
M;%(<A)G860YBM 5%HH.+<EWCQ<[<-^%N&P ='$"'T1MKGXC"M"SV)%(PR&&@
M.1.Z@1C&)$3NLWN:GQ[SGE!T3W .3JS$LA?0?C;?YJS>L(%F6 ==*!&'GUMN
M3=Z_:!.4Q,2DRJ9-Q=L#:.[F)?L<!#W016:X#:",%94*D6+N4=W6;MFYGUO#
M6<N%Y(;E5X5<*ANM$F;[^PC[UX+C'0V\:\64Q($$?-L.TX[@6#MTAVO2(N&Z
MK8W) J=8\=L(0F$%9:/P"VG7K"XN>[]#9$W@,O;6\;UE?.R%;S)X*Z\(@?G;
M@U]?D%]\0>_O]I\WM_&M?F\>OXW> Q>$)4K*X3H=+\]&V"3#]T:\\*8.[_@K
MX_'%$$X+?**190,\SXWQNPM>H/_HN_D/4$L#!!0    ( .. 4%8UH:SQ; <
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
MLU\[IL9%4@*KP76FGQ<(!$%48J_-%G8.: :BM1&X)LA(43@VB&'=KF.05+#
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
M);0""<POHG#HF,$VCF *YDLIFT?Y'PD)SU5SP5I2FX#+_$J9#\!#W6I;8MB
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
MFXQ$-KO3 Z<55A+FU_E/[I$PRJL75:C7 5%[$P,0MU3Y=FCZNHM<3QBJYN1
MB/4@N7VA,CCTDKJ<[R6%M\8(N;T'0-QL)WJW?\4PR2LX@16U!9+5[RF-0_JW
M2Z-S@@Y9<;A-\W!@A-18F(T$<Z&@0I59I\M.4VR2 *01+&O[5A/5L'HOJ02%
M7N<%K>7_@<5R^[903)[ATKD8UPP@6S+?AUM =8ZO\4^%KH C%R]B)WL0J0=Y
M0V\FNIY:@&1;J%XOW06Y PRIC/[*0N+_VH @&/3#)I-X)EBBO3 0BBS,Z#)4
MT:<L6R:^()L3%2XSR$&E^P$U6)B!?:VJ@8;C,%ARJD<S2ZJA1=#E?'N?Z^AV
M3*:V45)]^#!)_*4@-6=O<%!1BC5%^)1ZC:<6!5F^YAM[,Y^U39/"#3W2X6:0
MW[R0M'KI%1]>#5D0-*RYL!5IB[.C6(:9!CX4VN;?Z.J^+]XW&M]E:GJ-#EL(
MT.H*=<%YQXC<N09O_.')B\7YTW-R@Y-7_,GCQ3-VEY.4AD<&;1XEB!5_>T&6
MQE[3BKZC-9H+677*<NQV5PLH7!2H4-\\?Q86A6YZ^?BO+"DM[3H\D)J[=!^
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
M;4;CI)H(;^'57+UC>L6E 8%+@D;G%[T =#6KJHU5:S\?%LK2M/'+G,8[:A=
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
M   9    >&PO=V]R:W-H965T<R]S:&5E=#0V+GAM;*U7[V_;-A#]5P[NT"6
M&DN4;,FI8\!)NJU BP5)MV(8]H&6:)FH)&HD'2?[Z_<HV:I3N#(:Y(O%G^_>
M/=Z1Y^E&Z2]F)82EA[*HS,5@96U]/AR:="5*;LY4+2K,+)4NN457YT-3:\&S
M9E-9#)GOCX<EE]5@-FW&;O1LJM:VD)6XT6369<GUXZ4HU.9B$ QV [<R7UDW
M,)Q-:YZ+.V'_J&\T>L,.)9.EJ(Q4%6FQO!C,@_/+L5O?+/A3BHW9:Y/S9*'4
M%]=YGUT,?$=(%"*U#H'C<R^N1%$X(-#X=XLYZ$RZC?OM'?HOC>_P9<&-N%+%
M9YG9U<4@&5 FEGQ=V%NU^4UL_1DYO%05IOFE3;LVB@>4KHU5Y78S&)2R:K_\
M8:O#WH;$_\X&MMW &MZMH8;E-;=\-M5J0]JM!IIK-*XVNT%.5NY0[JS&K,0^
M.[L5]Z):"[H5J<HKV2AU\HDO"F%.IT,+"V[=,-VB7;9H[#MH :./JK(K0^^J
M3&1/ 8:@UO%C.WZ7K!?Q6J1G% 8>,9^Q'KRP\S=L\,(C_BZU*ND*7#7B IK;
M%5TU:@M-?\\7IAG_YY "+7YT&-_ET+FI>2HN!D@2(_2]&,Q>OPK&_ML>]E''
M/NI#GUU+P_-<BYPW!Z66M/7G$-%>J,-$/ZV@C"J0J;+*R;HPV*:K_$\8RKZ:
M%QE2LI525NW=X!@M'BD7*M>\7LF4.*Z))F<RPIP%>+K5^&=#J5I#_4?G1*9*
MF4K8.I%NF5H;7F7F])S^$ERWH40(!%$N<#J[8' _@?OQ:0Y$F7)#/U$X\;U1
M'*(5A2./81)C@>_Y+*9W:XW+C%@8>>,H)!;%7AQ%@$B\.(GI5["U,'"UDA4G
MQF(OBF+,^EX0CB@8)Q[#JM_AAJ:YD9R"4>A%P'7?R61" <,WF,!BX.%.]/R)
MW[;#&.T$[21 #YQ>0N?=L'VLGRW<G<5ZKC.JM<K6J36$/KE@D*EP<B91XL$]
MUTHF'FM:XSCRDA"JUW4!U1V?-Z86J5SBR'<'3$85:S=E($_L34+(!+V3"$J&
M8R_82=,K4T_&C+J,&?5FS-R)S*O4Z8VCU2*3ECXH8PYE3"_4LS(F7?$JQU>V
MX<^?L$E;-@788,FW1S@O78+0)2^:#8AN9,JWA^F42\* WE< XP[&JJ.67K]*
M6,#>TF<MK7BCEDOC487W'_@:S\ ]DLGQ&8U."2\?WK6*Q$/K"6F$9.?5#JB?
M8T!Q//XQAL$D.,:.A?'+T&.0, Y[@VW<!=NX-]@.OR<>?9!\(0MI'P\%72_D
MLX+.J8O"1&B]=WNXQ.Z2,Q.U,M*ENRN*0.SYT<<"C\41IIP]7K3'U)J$SP48
MR-W5#SZ K'& *GMRIKO" [ 3/WY2B^S!=2X!L :&WD+128"KV@^/A<-)B( ^
M%JIX-&*\#2_CSL3S$?D_[ [(C)A_U!WFC0)VS",7W9'?O&^' GRX5SDB,/*F
M/MZ^S6T1V8UV)?B\K3R_+F_K]X]<YQ+7?2&6V.J?Q;A-=5L3MQVKZJ8.72B+
M*&R:*_R-$-HMP/Q2*;OK. /='Y/9_U!+ P04    " #D@%!6D+F#.:D%   =
M#P  &0   'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6RM5VUOVS80_BL'=^MB
M0)'U+CE-##AINO5#UR!I6@S#/M#2V18BB1I)V_%^_8[42]S643-@'VQ1XKT_
M=T?>^8Z+![E&5/!8%I6\&*V5JL\F$YFNL632YC56M+/DHF2*7L5J(FN!+#-,
M93'Q'">:E"RO1K-S\^U&S,[Y1A5YA3<"Y*8LF=A?8L%W%R-WU'VXS5=KI3],
M9N<U6^$=JOOZ1M#;I)>2Y256,N<5"%Q>C.;NV66BZ0W!YQQW\F -VI,%YP_Z
MY7UV,7*T05A@JK0$1H\M7F%1:$%DQM^MS%&O4C,>KCOI[XSOY,N"2;SBQ9<\
M4^N+43*"#)=L4ZA;OOL-6W]"+2_EA33_L&MIG1&D&ZEXV3*3!65>-4_VV,;A
M)0Q>R^ 9NQM%QLJW3+'9N> [$)J:I.F%<=5PDW%YI4&Y4X)V<^)3LSO%TX?3
M2_(K@RM>$M:2F7"=?&*+ N7X?*)(C2:>I*W(RT:D]XQ(UX,/O%)K"==5AMG7
M B9D7V^DUQEYZ0U*?(NI#;YK@>=XWH \OW?:-_+\YYQ>,X&MTS=L3SFF8"X$
MJU9HUG_.%U()2IB_CGG?R Z.R]9%="9KEN+%B*I$HMCB:/;ZE1LY;P8L#WK+
M@R'IL[NF=H OP2 ''VN#UEPG=Z[VQ^P=EOAIC;#D!15G7JU :=#;"LW_00F*
MMG5>L&K_^E7BN?$;"=)HYO5369'F,S!1E?#%% )FIP>K^6HE<,44PL>-DHI5
MF5;&I/:#P,5R@:(#V(78BEP'?H)@:OL)_$JXD!!PK<!-()S:D0_7CRC27,-W
MXD?A&'S?#A.@,EUBKFFY 'RL<Z$)W&DTAC"QI\X+E'N06$$4D_+0M<,((MOU
MZ85V?2_NU)H8/<<?6.$TTL8'=NQ"8$^#AM_QPA8L"5N43U92>Z*UXN9K*S:Q
M'/+<&$&1B&S';81X7D .C>$]Q3W+<@, <6J0.IF-"NL0N%:+! 8U%X:)=&B"
M3?4UVY,9"B0OD>ASJH>\,M3+C=H(M'LWOC=>(*2L2#<%TY\7>V!U7>Q-N"L@
MBKPT&\L&*!(&0B=%Z\*WUM@#!1/V!1,.IG>?@_,M"CIE8"XINUL'[G4&D7/7
MC67:SG<L%_"9%1N4WQ:9[%+Q6)$-6V&*3$O>]I(/BTC"JDUR,@99NH8:1<XS
M,!W$;.R0@O44P8TTU?I5[>XZ5UGK*GMR]0S^0"::AGPD:4W9T9\#M[E\.%T*
M;)'Q; ]^!M?VS7] _]<=Z!F5?895!OL<BPP<.]#;CDUUHA^!>TB\Y902>4%]
M GR][T_U7WQ(HE"4<$(!V).EDDK6#G7FZ]] 'D1]'D2#"/S.N^2ZI8?(C<H&
MW;9O#;700=G'6_[+^^HO$F[O[N5 )^UR]\F)YUIGXNEV%86V%_6-,W9#W?^<
M"#XWS-02O3%$KDV-ZGC/C&/:#^PH_*%*C_JR%TVU4M>. QB *NZABH?/.+IX
M9AL*%ZF[06$NGE6*WP-W7^5*'H-K4/YQN'ZL"$YN-$QC^$_(WOQOT)KCUWM#
MD>Y6'<"^#Y%G!],.WVZ_>Q[%^%NB'P/MF]0RB@903GJ4DV&4G[MXZH9023R&
MZZ#$EY=AVU4;J$P?/ET8.])#.["Q0Y]B*6ON.DL=OZ/MF5<M[I7D19ZQ)G?H
M41I%%,^/Q,.:9G]BSE.^D705D>,7M^8K3D<L21*XQ6J#!(9G.:Z^:]#M) B;
M)Y4LI2\)3-<632=;FKIJ;8-%)W &6*TH:&0\Q<*E:];4!]>W0C_4#S^)X8[&
M(]JT8(45V5LT;"RCR2/75V(]0H$?6#&U#B^Q$KK=>+$U=70#".GJXV@S M^*
M8WWM"3PKBMRCV3(Y&%E*%"LSF$E"8%.I9GKIO_:SW[P9>9[(F\'Q Q/DE80"
ME\3JV#&=Q:(9QIH7Q6LS "VXHG'*+-<TOZ+0!+2_Y%QU+UI!/Q'/_@502P,$
M%     @ Y(!05E/?V81(!P  =!4  !D   !X;"]W;W)K<VAE971S+W-H965T
M-#@N>&ULQ5AI;R,W$OTKA)*9M8%>JYOJ2Q[;@.W)82"'X7&R6 3Y0+<HB3O=
MS0Y)^<BOSROV(6DM:PYL9@&[U0=9?%7UZB!/'K1Y;Y=2.O98E;4]'2V=:X['
M8ULL927LD6YDC2]S;2KA\&@68]L8*69^4E6.>1BFXTJH>G1VXM]=F[,3O7*E
MJN6U87955<(\7<A2/YR.HE'_XD8MEHY>C,].&K&0[Z3[I;DV>!H/4F:JDK55
MNF9&SD]'Y]'Q14;C_8!?E7RP&_>,-+G3^CT]7,U.1R$!DJ4L'$D0^+F7E[(L
M21!@_-')' U+TL3-^U[ZMUYWZ'(GK+S4Y;_4S"U/1_F(S>1<K$IWHQ^^EYT^
M"<DK=&G]E3UT8\,1*U;6Z:J;# 25JMM?\=C9X6,F\&X"][C;A3S*M\*)LQ.C
M'YBAT9!&-UY5/QO@5$U.>><,OBK,<V=7=:$KR6[%H[3LX%;<E=(>GHP=1-.
M<=&)N6C%\!?$1)S]J&NWM.R;>B9GVP+&P#0 XSVP"[Y7XEM9'+%)%# ><KY'
MWF10=.+E33ZH*'NK;%%JNS*2_79^9YT!-7[?I7,K,=XMD<+EV#:BD*<CQ(.5
MYEZ.SEY_%:7AFSUXXP%OO$_ZV:6NK5-N)6MGF9ZS:Z/OE0\%1"+;=-LNY'ME
M[T;>B70PD'Q$S%O)"F!0ULD9 7!+B:5+1+&J%^Q U7BC5U;4,WMXS/XMA6E]
MS^ Y6=U),WB/+A%=0G:Y,@8:';-OY4P:4;*O69P'DR3!#<^"/ MQ PNR=TXX
MR9(@S:>X3C+.II"!0$28U2P* QY/6![$8<JB21!-,Y;& <\S%D=!&N<LPE.6
M \M<8L79>L&#. RRC!^R@V@:\#2EF[R]:=<\(#PQ7F?I%-<DP9=^71X&83AE
M4=8NG&#>E!WP:1!%&<;R(.4T9Q(DR>00FDR2(/(J3:9!&$U)-ZS.$[:'(,E
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
MQ:O"+.3V9]S[XPQ,9*'=%[:U;!QXD%3:R'*O3!:4N:C__'$?AR.%P7,*;*_
M7JO0W2MTG:.U9<ZMC]SPR4C)+2@K36BVX6+CM,F;7-A=O#>*9G/2,Y,%:J.J
MQ%0J%VN89URM4</% U\6J"]'OJ$UK*2?[/%F-1Y[!B]D<"N%R33\*%),3P%\
M,JZQD!TLG+&SB!\QN8)NV $6,-9BT/SUZN$9<[I-P+H.K_NJ@'&1P@(+;C"%
MJ65D;G**WQ_3)4D11?]LBV"]0-2^@$W;:[WA"8X]RDN-Z@MZD_?OPEYPT^;]
M/P1V$HNHB45T#OU,+.92&]WF^UG =G,?,H25+*C>V%6,9>:^Z.1_4ZP-3:L3
M0Y(]BZG&N=D=<@5HZ0C$!BR7J!I"P44N2$A6FLS7E]<P+64E#'P2^,%0N0*#
MBM*.NYJS1(&KW&CX <)./(C(3>&V^40JL;Y#O^ND>G$?VK;M/Q:'X,UQ"#IA
M/#P7B+C#@CY\(@,4<*UEDCN&["?C@06).T,6P1E&Q@TCX[.,O*=3+JTH,'(%
MI^Q<U&&$Y0X>=ALG8$G:QM&S2[QY;WA='G;@ HVT>KGA8O?^W8"%_1O]9._V
MR/2O$\I(I]3LF^/NB8<=V&9YDD&N:86DJ.PVTU(6GP4WTR11%8W@(YW_&K4;
M#F] 'HP16A9YZM::\8*+!.'>GBKZ.V8TE'@XVNO9@1(-$XYG73F !VEXT:!S
M;??@*1%#HH,+";MI;2U:&5YG(Z5<G7!SKC/8\!W=-JS]O:AWV0#4/;H"T $O
M*!P$(=849_(<ZK8&U@,&;/""J8S,&O8B^O9CE^M!=PC_%A%N^:[.V_\9!^HZ
M,/U6!UY/C: NJ*R.N.O9N+-.=S!\NN5A)XS8)5PPUJ=O&-L/R44O[7S#DO[E
M2?LETD8#!G'8:W2&P\%3DTC$&M2+CY&C_JLM.N'P2Q:QD^1A4?Q=O^U0>D/A
M>_XNX1]=2DND-+5W=4UUGXZ5^O;7C#;/@:F[!3\9G]$SH;[5?X.IWQBWE/VY
MT%#@BB"#JSXYH.I[>]TQ<N.NODMIZ"+MFAD]=5!9 9I?26D.';M \WB:? 50
M2P,$%     @ Y(!05NDBT?05!   O18  !D   !X;"]W;W)K<VAE971S+W-H
M965T-3(N>&ULM5CO;^HV%/U7K$R:-JEK8K= Z0"I/_4J/23TV-L^/.V#F]R
M]1([SW:@E?;'SW9HS"1J*"Q?P$[L<X]OCN])/%H+^5TM 31Z*0NNQM%2Z^HZ
MCE6ZA)*J<U$!-W=R(4NJ35<N8E5)H)F;5!8Q29)^7%+&H\G(79O)R4C4NF <
M9A*INBRI?+V%0JS'$8[>+GQABZ6V%^+)J*(+F(/^6LVDZ<4M2L9*X(H)CB3D
MX^@&7]^2H9W@1OS)8*VVVL@NY5F([[;SE(VCQ#*" E)M(:CY6\$=%(5%,CQ^
M;$"C-J:=N-U^0W]TBS>+>:8*[D3Q%\OT<AQ=12B#G-:%_B+6GV"SH)[%2T6A
MW"]:-V,'@PBEM=*BW$PV#$K&FW_ZLDG$U@3<?V<"V4P@CG<3R+&\IYI.1E*L
MD;2C#9IMN*6ZV88<X_:IS+4T=YF9IR?SYFD@D:,Y6W"6LY1RC6[25-1<,[Y
M,U&PE(%"OZ&;+&,VE[1 3[Q1A,WL+_>@*2M^'<7:,+*X<;J)?MM$)^]$QP1-
M!==+A1YX!ME_ 6*SE'8]Y&T]MR2(> _I.;K 9X@DA 3P+MK\7#B\BW?P9M)L
M *E?S]"LL(FA/$,//VI6&65J].VS&8Z>-)3J[UVK;[ O=V/;#7>M*IK".#([
M2H%<033Y^2?<3WX/,+]LF5^&T"</>0Y.\D8NNI9,NX?,^ J4MN35+L)A2)R@
M5Z!2!=CU6G:](-24OK"R+K?X6'9Z"2@5947YJ[F#*BHU!ZF6K-I%MHDP=!%L
M]5E-DO.D-XI7.WCU6U[](*_;FA69E?VW*93/('<^UB#$D8]UT!(<="C(00?,
MKUKF5\'4!IF?H:\*\KI GUD.NYB'L2^&>Y4Y;&D.#U/ 4UE)L0*W5X)R".(=
MF52<^ *>="B(#?C_3'[+?7"'FM@#?D"YPL0S)4&P.U.6:@T2?:(R6U,)CNM<
MY-IUWO2!_D%3QEUI"TDF'.S8M'M3PUVZ&N["UK#W-1QVH1,U$P8G^R7C+0Z'
M/>X#DMFX85 RP6#'9MW[(NYW*9DN+!-[S\1!8SM5,F'P0\J,]T@<-K(IY75N
M/E7,"YNQH#_,N]%VEC]89(*ACDVZ]U$\[%(Q7;@J\:Y*@L9WHF+V@.\O,L0[
M* F;W,&".:#$A$,=FW-OL81T*!C2A:42;ZDDZ'JG"B8,WMLO&&^?).QPC[7D
MS,BE<:-']F+;ZJ.U)1SDV&Q[:R6]+J72A942;Z4D_(UYHE3"X ?4%F^;).QL
M!TCED*K2Q4<G\8Y*KKJ42A<>2KR'DO#'Z(E2"8,'JDJ\=:)8@ERX<U.%W*%@
M<[C87FW/9F^:$TD_O#G8G5*Y8%RA G(S-3D?F,TGF[/2IJ-%Y<XGGX76HG3-
M)= ,I!U@[N="Z+>.#=">6$_^!5!+ P04    " #D@%!66W<*@-L#   -%P
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
MU<A^@*KMZ.W$R-IWT;4TMB?[864O05#.P.X74IK#Q 4(UVKV"U!+ P04
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
ME,ASOJ*9_F7.14J4OA4+7ZX$)7%AE"8^"H*^GQ*6>=-Q\>Q>3,<\5PG+Z+T
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
M;/<G+0)R,[PYBT7^"G:%K6V!^49(EA3.BD$2I?MW\K-(Q($#=#H<4.& CG7
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
M:# 0#?94+XC5O2 Z8=SF^C* />O+#&)UZ'.!+?GW_/[>W"#6X :10$PLV&4
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
MQCT1[?3M0G$$/;[WBA_M*#X7<B6DF?0.7&HW=6B9QO(;D\&YA%M#Q*%#L%$
M=R^I=*TU-7-V%-,@]AT_BWG<NZ3259(CDY_0B6\O6FKC[M3N08(FN&$<0>IY
MEL*6W;@WNWNH<N ;DC#P))?8$AQW);C3K2O)1HAXBC_$PIKTA+6S#NE*J D*
M?-XMEDD[ED\?>#Y_[("H=CL'GF]B24Z&KX63(8KAQ 8$\NKE<.(HKM"8>A[M
MR5X]?+""N"N+CSU)/+'X)D-4Q$F3X+X#8>%-!JR'DR:_?8(LN\E+JN'$P>B6
M'6(135ZA'DY<!7'O9K @)NT@OE[GR3Q9L;0+EH8HB5,+;SI\29P.41*G-@+0
M5R^)TV:V'OJ2=6H13X<JB%-7!N])FJCE-1VB'DZ;R/8@@%I<TP&KX;1);)^@
MO?]?OJ083IM8]F\/"V;Z"J7PR@9MW0GCO=<4BE<^KIE\2'(%4GYO>@7O(]-=
M[MZBV#6T6)5O+MP)K4567BXY6W!9W&!^OQ="/S6*ER'J=UEF_P%02P,$%
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
MG1[&EW!\= )'QNU'RA>2L$3V;*6YF1/LN.(Q+'EXK_!P/;CE3*42OK($DVT
M6XNJE7EK94-O+^(EQN?@NZ?@.9[70&CT?G=W#QV_#K1?X/EO!?K7/==/?0=7
M1"2_FR)5 @7-0":M+^2<Q-BW=-Y*%$NTHL^?W-#YTJ3R0&!;FH-:<[ /O=9\
M"D.<4<;,;1J2C+ 8FW278*T"S/Q]EI$7N&W7[]G+345-9H'3[M1F6UQ;-=?6
M7J[Z@^B49X!/<9$'((A"*,>-][F$"S=HG+E!X.V0;;#R_+#5S#6LN8;OC*M.
MEC>"&KX@X 5>Z#L[/,.W8K]%M%T3;>\E.AZ,8$P%74@8)$M#,8'1\P0%0T5C
M"5?YY+J)]%[4CV; @<"V M"I ] Y5-9W#JGY0&!;FKNUYNX[;^=W74<$W+!8
M]Q<23=DH1R=-^KLO;Z#?ZNY<T[TG?U27O5$V<Q2SHIN0$/,%4V6=J5?KAF50
MU.F=]:%N9,J^XS],V07=$J%_?!(RG&I(Y[RM]8FRLR@GBL^+XCSA2I?Z8ICJ
M9@R%,=#[4\[5>F(.J-N[Z!]02P,$%     @ Y(!05H"(/,CC!   'B   !D
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
M@P9\L ]\T 8^V 5W!MM;I=/Z0'"_ ?<[P>\24.?Z0@)OP_=W\2W?V\+O7.!
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
MS89,5L6J"[-$JJO:XN-2\+E(\P;J^T62R*>-O(/MXB/3_P!02P,$%     @
MY(!05B[D4^1< P  P@H  !D   !X;"]W;W)K<VAE971S+W-H965T-S0N>&UL
MK99K;]LV%(;_"J$-0PMDEJB[,MM ZFQ8@18-:K3]3,O'-E%*=$DJ3OY]#R5%
M5:;+4J!?;)(ZE^<](H^XO$CU59\ #'DH1*E7SLF8\[7KZOP$!=,+>882GQRD
M*IC!J3JZ^JR [6NG0KB^Y\5NP7CIK)?UVIU:+V5E!"_A3A%=%053CV] R,O*
MH<[3PD=^/!F[X*Z79W:$+9A/YSN%,[>+LN<%E)K+DB@XK)P;>KVAM4-M\9G#
M1??&Q$K92?G53M[N5XYGB4! ;FP(AG_WL $A;"3D^-8&=;J<UK$_?HK^3RT>
MQ>R8AHT47_C>G%9.ZI ]'%@ES$=Y^1=:09&-ETNAZU]R:6P3S)A7VLBB=<9Y
MP<OFGSVTA>@YT'#"P6\=_)<Z!*U#4 MMR&I9M\RP]5+)"U'6&J/905V;VAO5
M\-*^QJU1^)2CGUG?Y+FJ8$_^?L"-H4&3/\E&EMIP4T%I-)$',C!Y=0N&<?$:
M;3]M;\FKWU\O78,L-J*;MWG?-'G]B;RWD"](0*^([_G^B/OFY>[TN;N+%>C*
MX'=E\.MXP42\_VIFK69H-8\);"*&XQ'M\;O69Y;#RL'SI4'=@[/^XS<:>W^-
MR?U%P9Z)#SKQP5QT+.8!E$*U9_98U!50()C!!2/)MF*"[7!3+*[(.[-?8&F^
M55QS>PC'JM*DBNI4MH?<KVGFI]A5O*5[WU<\-/QA\4Q&V,D(9V6\+7.$QZ9
M<EG8U\:F&)LX<9\QC:)PR#@T#)*,)GW#9ZA1AQK-HFZQIHKC46)E774EA2"&
M/8QOM&A D5*?#FE'["*:3<+&'6P\"XOM$INA;=J&*[ ;A,B=X,>ZO*/ \0 D
MH=D(\(A=E/B3P$D'G,P"?V;YY*M/!BFC-$R&:$.[,$[C2;2T0TMGT;XPI5AI
M'O^O@NDP?9!$0\RA713ZT_LSZS"S6<P/Y@1JC"L;Y/.S-!X!&S%, THGR:CW
MXX/ES;+=O* UMR'ZZ;/ #T8X6\M^&\K\,)C>A+3W9:7SH%KC-:S7+J^P,6&#
M*H_V".%0\STHUCP1G.VXX.81C2ILQJ49U44'M'[HV<8UT#7+]K,?%+=WP;"W
MN_=,'7FIB8 #AO<6"1*IYL+43(P\UW>.G31X@ZF')[QD@K(&^/P@I7F:V&M,
M=VU=?P=02P,$%     @ Y(!05FI>-?;\ @  Z0<  !D   !X;"]W;W)K<VAE
M971S+W-H965T-S4N>&ULK97?;]HP$,?_%2NKIDY:FY"0I.L@4H%6VT,U5-;U
M8=J#28[$JF,SVX'VOY_MA)0?@>UA+V [=U]_[GSV#=9</,L"0*&7DC(Y= JE
MEM>N*],"2BPO^1*8_K+@HL1*3T7NRJ4 G%FGDKJ^YT5NB0ESDH%=FXIDP"M%
M"8.I0+(J2RQ>1T#Y>NCTG,W" \D+91;<9+#$.<Q /2ZG0L_<5B4C)3!).$,"
M%D/GIG<]CHV]-?A!8"VWQLA$,N?\V4R^9D/',T! (55& >N_%8R!4B.D,7XW
MFDZ[I7'<'F_4[VSL.I8YEC#F](EDJA@Z5P[*8($KJA[X^@LT\81&+^54VE^T
M;FP]!Z655+QLG#5!25C]CU^:/&PY]*(C#G[CX.\[](\X!(U#8 .MR6Q8$ZQP
M,A!\C82QUFIF8'-CO74TA)E3G"FAOQ+MIY*;-!459.CV1=>%!(DNT+C +-<C
MPM 3%@(S]8J^S2G)L4F\1.<34)C0#]KT<39!YV<?T)DQ_E[P2F*6R8&K-)G1
M=].&8E13^$<H>CZZYTP5$MVR#+)= 5>'U,;E;^(:^2<5)Y!>HJ#W$?F>[W<
MC?_=O7<")VC3'%B]X(C>/5^!KGUE\C13.DE89&@J>%:EZBW+]C P13\?.*5(
ME^E:F_WJ2F>]6[][-W/SK^42IS!T]-66(%;@)._?]2+O<U<J_I/83F+Z;6+Z
MI]23$>2$,<)R-,(4LQ2ZHJTE0BMAGJ55$O;]>."NMJ/H,O*BUFB'+FSIPI-T
M^H161-JJUP\F6M<'1<SED-)<FZP2AET5@)8@",^Z\.L]HBVRWE4<[>$?&@5^
M> 0_:O&CD_AW%5T02FWA\<4&_Q7QM]O<Q1L=H%SXG_RK/> .J\ /PF[BN"6.
M3Q+KZ_^76H@/CKD?Q.$>VZ'13L'4:.[6JUF"R&TSD2CE%5/U0].NMOWJQC[3
M>^LCW<?JMO,F4S?!>RQT>4M$8:$EO<M8(XFZL=03Q9?V;9YSI5]Z.RQT+P9A
M#/3W!>=J,S$;M-T]^0-02P,$%     @ Y(!05H2.K9.! @  1 <  !D   !X
M;"]W;W)K<VAE971S+W-H965T-S8N>&ULK95=;YLP%(;_BL6FJ96Z\IET[1*D
M-&A=+Z9%K;I=3+MPX"18-3:SG:3]]SLV!*4*K;(I-V##>=_C\QB.1QNI'G4)
M8,A3Q84>>Z4Q]97OZ[R$BNIS68/ -PNI*FIPJI:^KA70PHDJ[D=!,/0KRH27
MCMRSF4I'<F4X$S!31*^JBJKG:^!R,_9";_O@CBU+8Q_XZ:BF2[@'\U#/%,[\
MSJ5@%0C-I" *%F-O$EYEB8UW 3\8;/3.F-A*YE(^VLEM,?8"NR#@D!OK0/&V
MABEP;HUP&7]:3Z]+:86[XZW[%U<[UC*G&J:2_V2%*<?>)X\4L* K;N[DYBNT
M]0RL7RZY=E>R:6(O$H_D*VUDU8IQ!143S9T^M1QV!.%K@J@51(<*XE80'RI(
M6H%#[3>E. X9-30=*;DARD:CFQTXF$Z-Y3-AM_W>*'S+4&?2J:PJ9G ?C294
M%&0JA6%B"2)GH,E',BD*9C>(<G(KFJ_,;M=)!H8R?HH1#_<9.7E_.O(-+L>:
M^GF;^KI)';V2.H/\G,3A&8F"*.J13P^7ASWR['!Y\%+N(\,.9-2!C)Q?_%\@
M,Z9S+O5* ?DUF6NC\'O_W8>L29+T)[$]X$K7-(>QAS^Y!K4&+_WP+AP&G_L
M'M,L.Y+9"[AQ!S=^RSV=K51>XM]-I"I $6Q?VB!DY-O'L/$:."_;]M;I(+A,
ML!'B/J]W^;R9]%_Y',GL!9^DXY.\R>>[*1'+K5CCYR?5\QG9 BO(C92%/B,W
M2FK=!RO9AQ4-+_=9]<0E%WMAV7Y8&(?A;EQ3H+_3LNSY\HVJ)1.:<%B@,CB_
M0 O5].QF8F3MNMA<&NR);ECB,0?*!N#[A91F.[&-L3LXT[]02P,$%     @
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
M_VN2Y*]7^H7_G*3?-GW<_!]02P,$%     @ Y(!05J>-_3*[ @  -0D  !D
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
M__+:<,CN0G8++1IWIG="F]_EII5YPT#:!+-?"J%/"WM-AE<Q_0U02P,$%
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
MACE^%X"R!OA\+J793>P+JB^-Y#=02P,$%     @ Y(!05E:@('@/ P  F @
M !D   !X;"]W;W)K<VAE971S+W-H965T.#4N>&ULK99M;]HP$,>_BI554R>U
MS1,DK(-(!39MTBI5=-U>N\E!K"9V9AMHO_W.3LAX"-%>[ WQP]T_O[OX?(RW
M0KZH'$"3U[+@:N+D6E>WKJO2'$JJ;D0%''>60I94XU2N7%5)H)EU*@LW\+S(
M+2GC3C*V:P\R&8NU+AB'!TG4NBRI?)M"(;83QW=V"PNVRK59<)-Q15?P"/JI
M>I X<UN5C)7 %1.<2%A.G#O_=C8R]M;@)X.MVAL3$\FS$"]F\BV;.)X!@@)2
M;10H/C8P@Z(P0HCQN]%TVE<:Q_WQ3OV+C1UC>:8*9J+XQ3*=3YR10S)8TG6A
M%V+[%9IXAD8O%86ROV3;V'H.2==*B[)Q1H*2\?I)7YL\[#GXT1F'H'$(CAT&
M9QS"QB&T@=9D-JPYU3092[$ETEBCFAG8W%AOC(9Q\Q4?M<1=AGXZ6< &^!K(
M E*QXLRF]IK,80E20D9VVY1G9&9I0.)N)133BBQ$80[2ELJ,7,Y!4U:H#^C^
M]#@GEQ<?R 5AG/S(Q5JAOQJ[&H'-:]VT@9O6<,$9.#\@]X+K7)'//(/L4,#%
M2-MP@UVXTZ!7<0[I#0G]*Q)X0= !-/MW=[\')VRS'UJ]\(Q>F](9ABGQ2"OR
MG=%G5C#]=H4)QV_ =5?>:ME!MZRI_%M5T10F#I:V KD!)WG_SH^\3UTQ_R>Q
M@PP,V@P,^M23*:P8YXROL!@+RE/HBK:6&%H)<RUMDG 8#\*QN]D/X]0J\(-X
MT%H=\ U;OF$O7UL)<J\2TMUGRYI*Z(*N=:-]Z(]>'!U!=UCY:-8-';7042_T
M?C&+98N>[6+!JJPD$Y)4@(^LBSXZX;H._6'@'>%WF/GQP N[^>.6/^[EQPL:
MKU].X#7-*5\!D50#J<>=N8Y/,8*A'QS!=EB%PV[244LZZB7%>ZGOX(Y.CN3
MBT?Q$=>IU>'QKLG<O4L>S][*]CY%4K'FNKX V]6VO=[9KG*T/L6V6W?)OS)U
MS[ZG$JM1D0*6*.G=Q,@DZSY83[2H;"MY%AH+P YS_.L TAC@_E((O9N8%[1_
M1I(_4$L#!!0    ( .2 4%800W+2&@L  *6,   9    >&PO=V]R:W-H965T
M<R]S:&5E=#@V+GAM;+7=VW*C. (&X%>AO%.[/579&,G'9!-7I6.@&1..-;T7
M77-!VTKL:FP\@)/IK7WX!8P/@%!PZM]<=&PB?9)1^!L;B=R]A=&/>,E8(OVU
M#C;Q?6>9)-O;;C>>+]G:CZ_#+=ND/WD.H[6?I$^CEVZ\C9B_R"NM@RZ5Y6%W
M[:\VG<E=OLV.)G?A+@E6&V9'4KQ;K_WHYV<6A&_W'=(Y;'!7+\LDV]"=W&W]
M%^:QY/>M':7/ND=EL5JS3;P*-U+$GN\[#^36Z^45\A)?5^PM/GLL92_E>QC^
MR)[HB_N.G/6(!6R>9(2??GMECRP(,BGMQY\%VCFVF54\?WS0U?S%IR_FNQ^S
MQS#X]VJ1+.\[XXZT8,_^+DC<\.T+*U[0(//F81#G_TIO^[+#M/!\%R?ANJB<
M]F"]VNR_^W\5.^*L J4-%6A1@58J] <-%7I%A5ZE0J^IA7Y1H5_M4E,+@Z+"
MH&V%85%AV/8UC(H*HTH%TFNH,"XJC*LMR T5;HH*-VU;(/)AY.2V+YL<![LZ
MVHW=(H?A)M7Q;N[88<!)=<0;?Z?(8<A);<P;JQP&G=1&O;'*8=A)==PI::IR
M&'A2'?GF*H>A)]6Q;ZYR&'R2CWYW?_3FA_[43_S)712^25%6/O6R!WE^Y/73
M(WZUR:+.2Z+TIZNT7C+QEG[$EF&P8%'\#TGY<[=*?DK_E!X6BU4617X@Z9M]
MH&;!]&G*$G\5_'K73=*V,Z$[+]IYW+=#&]KI24_A)EG&DK)9L 6GOBJN?_->
M?4U<GU !T$UWVG'/T<.>^TR%XI3-KR4ZOI*H3&7I=V\J??J%NV-:,#V2,_3
M2%_#A$F_2%TISL8G+KYQ]&E[G;0"E?:@? ;R1E0L>6R;[K]1&TG[O^Y"_9)=
M>-#;P#,Q;,V3:TGNU<:&(QF7#,HE733%\),?';M(!;_C5@N&T'</%;O%#J,W
M&4/& L81,P_;M#=T4#"-N\9MH^2'/QDV*UX;92102MG4.Z9Z+V=[#>QCX,>Q
M%#Y+7A+.?TC?C/3GDIZP=?P'IX^?]UB?CV4GV[?QUI^S^TYZ-AVSZ)5U)G__
M&QG*_^+%'1*;(C$%B:E(3$-B.A*;(3$#B9E(S$)B-A)SD)B+Q#P05@JX_C'@
M^B)]\K!+EF&T^@];'/Z+^[3:% ]_E?[;G,>?A>ZE6;?'ACF6?:CP.NG+V===
M]_4\Q=H54Y!=4Y&8UNX%Z.V*S9!=,Y"8B<0L)&8C,0>)N4C, V&E3!D<,V4@
MS!0[8L\LBK)(R<^:MGXDO?K!CN79L@B#P(]B:<NB?;ID,2,\:?\L;.[2J-EC
MH[-C2[Z6225HVA12D-U2D9C6IOMZFT(S9+<,)&8B,0N)V4C,06(N$O- 6"EB
MAL>(&0HCYC%<K\---5^N)%Z^O!LOPJ8NC9<]-BX?53*MY$NK4@JR8RH2TUKU
M7V]5:H;LF('$3"1F(3$;B3E(S$5B'@@K1<SH&#&CUA%S=7ASY)_>+K5]GR1L
MY=)T&=7>&/3DXJN2,*U+*L@.JDA,:_T:]-8E9\@.&DC,1&(6$K.1F--ZJ-QZ
M2<(MZ-4+TAI9RH#Q,0/&P@S(+WVP3;)*@O2(?PXCB?GSI30OHB$_NPAW29SX
MF\5J\Y+F0%:#EP+"=BY-@7%]QU2.?F1S"A)3D9CV[H[0D<W-D)B!Q$PD9B$Q
M&XDY2,Q%8AX(*Z74S3&E;H0IM;\VY;+M+IHO_3A-JNDNRN+(9M$J7%Q)7[,W
M1[Q4$KJ7IA(2FR(Q!8FI2$S;8X/2_US]'NG7SW#J)<F0# >T?H:#[*!1;W9
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
MR@JD/W\.P^3P)&O@+8Q^Y+MR\C]02P,$%     @ Y(!05DG9B63)"   4DD
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
MO9>>)?7!/MK]_WBVVU.:W[-K?D/J^W@9P.ZK-T.@90!0- *%IK.FR@#>N<L
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
MZG3[RC;/[S+R@63K[/Y@SJ1D2?:Z AH"UPO4_PO&Y&&@#90W2I/O4$L#!!0
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
M=.%GFXDNM5&8!7I^Q;G:=PQ 7;S/_@)02P,$%     @ Y(!05L.]OIIE!
M_!4  !D   !X;"]W;W)K<VAE971S+W-H965T.3$N>&ULS5C?;^(X$/Y7K-SJ
MM"MUF]\!>H $I*NK=)50T>X]5/=@D@&B)C%G&RCWUY^=I"$I)MNN_- 7XC@S
MGV>^F3%C#P^$/K$- $?/69JSD;'A?'MCFBS:0(;9-=E"+KZL",TP%Z]T;;(M
M!1P72EEJ.I85F!E.<F,\+.;F=#PD.YXF.<PI8KLLP_0XA90<1H9MO$P\).L-
MEQ/F>+C%:U@ _[Z=4_%FUBAQDD'.$I(C"JN1,;%O0CN0"H7$CP0.K#%&TI4E
M(4_RY2X>&9:T"%*(N(3 XK&'&:2I1!)V_%N!&O6:4K$Y?D'_5C@OG%EB!C.2
M_IW$?#,R^@:*885W*7\@AS^A<LB7>!%)6?&+#I6L9:!HQSC)*F5A09;DY1,_
M5T0T%!SW@H)3*3BO%&SO@H);*;AO5? J!:]@IG2EX"'$'(^'E!P0E=("30X*
M,@MMX7Z2R[@O.!5?$Z''QPM.HJ>O4\%<C&8D$^G$<!&0VV<Y!O05_53D<P@<
M)^D7(?M]$:+/G[X,32YLDRN8467'M+3#N6"'[:![DO,-0[=Y#'$;P!1.U9XY
M+YY-G4[$$*)KY-I7R+$<1V'0[.WJMD(]?+NZU>&-6\?)+?#<2W':8 I5$.;X
M*"J/HPFE.%]#,7Z<+!FGHHK^47%?8GMJ;+FUW+ MCF!DB+V# =V#,?[]-SNP
M_E#QIA,LU 36XM2K.?6ZT,</$)%UGA2YO 6:D!B)C13M<EI^^$]P'343'LJ$
M5S'<O9*-CH I"E!6YKB+8GQD*G([<=Y+KB:P%KE^3:[?F;"WV38E1P"T$,!)
M))Y%!B_/MI$K-$E3$I4,DQ5Z.)$_+X,R(XPS]/B76 '=<<B8,L=]G3FN$RS4
M!-8*0U"'(>C,O'+S+EE_:RZ7B'Z!*/N&_=CW?,NW++&1[9LLG0MZ;J_GG0F&
M"D$G".RF8,N[7NU=K].[NUSX!(CC9[2$'%8)1XW:I9!B+IZ<(/8+-)1+!PVC
M![[T[34+YW)!+U"0H)#S@\%%#OHU!_U.#N:4Q+N("[<8E_5#80_Y#M#C/61+
MH,I:Z41\;ZWH! LU@;68'-1,#C[6EC70&0:=8*$FL%88;.O4DUK:-ZT*LEE>
MCB4L.BM7A:#M>N>[6Z@4#/R+!6LW>F[[)XT'$^U M+D2)Y2].'IM90MWA7 >
M(\C70E@D4;Y^\5;5)TR[5WAO[FA%"W6AM=EU3NPZ'ZN,*WMTQ4(G6J@+K1V+
MTZG%[FS@?ZV2W?.ZZP4#5U'*"DG7=U6UK))T^[W+Q7PZ1-C=O?T"4C&UOD)K
MT8%0G)9UC&-Q6$_DD4S>:W3^&7?COSM]M)X@=*&UN3V=(>P/=HBPM9XBM**%
MNM#:L3@=)&S])PG[O/%WO=Y ]:]\+NGT^P-%&ZV2[ TL12-M-J[%,J#KXGJ1
M">-W.2_OD>K9^@IS4ES<O9J?RJO-XKKM!%/>B]YC*OZO&4IA)2"MZYXPBY97
MC>4+)]OB\FU)."=9,=P CH%* ?%]10A_>9$+U!>^X_\!4$L#!!0    ( .2
M4%8J,LA\PP,  +L0   9    >&PO=V]R:W-H965T<R]S:&5E=#DR+GAM;*U8
M6V_K-@S^*X(W#!MP6M_2]+(D0%/O<H"=(6AVSAZ&/2@VDPBUI4Q2DO;?CY)=
MUTX=-0GR4EL*^9'\2-%B!ULAG]020)/G(N=JZ"VU7MWYODJ74%!U*5; \9>Y
MD 75N)0+7ZTDT,PJ%;D?!4'?+RCCWFA@]R9R-!!KG3,.$TG4NBBH?!E#+K9#
M+_1>-Q[98JG-AC\:K.@"IJ"_KB825WZ-DK$"N&*"$PGSH7<?WB5A;!2LQ#<&
M6]5X)R:4F1!/9O$Y&WJ!\0AR2+6!H/C8P /DN4%"/_ZK0+W:IE%LOK^B_VJ#
MQV!F5,&#R/]FF5X.O1N/9#"GZUP_BNWO4 5T9?!2D2O[EVPKV< CZ5II453*
MZ$'!>/FDSQ41#86POT<AJA2B787>'H6X4H@/5>A5"CW+3!F*Y2&AFHX&4FR)
M--*(9EXLF58;PV?<Y'VJ)?[*4$^/IEJD3Q=C9"XC#Z+ <E+4)N2"3+'&LG4.
M1,S)!*2M,9X">02E)4LU:EAM\I4SK<B/"6C*<O43JC;%ITLJ0>'F]\0GJEQ4
M#\;)7TNQ5I1G:N!K#,<XY:>5Z^/2]6B/ZV%$O@BNEXK\PC/(V@ ^\E"3$;V2
M,8Z<B FDER0./Y$HB*(.AQX.5P\[U)/#U0-'-'&=VMCBQ?M2:TB^F+U/[;V4
ME"\ 3Z\FLQ?2E)O0%[M]OZ4R(__\@9#DLX9"_=N5G])^K]N^Z5AW:D53&'K8
MDA3(#7BC'[X+^\'/7=R>$RPY$UB+]U[->\^%/OI3\ T>$61S!@O&.>,+;$VY
M/0S8>97&<L>]+D)+X+X%-AU[,\)"V#19<IH^EJ4S@;58NJI9NCJ5I4]D:]LU
M9!=T Q(_/P2>0:9, 5EAYX$NZDIK5P[JG/X<2]V9P%K4]6OJ^D[J?L/CJW<;
M7LE"_UT!Q?$.#>]%=HA*7!(MAZ]KAZ\/<?BDO);(UPUG^M%E[W8G**?]8W-[
M)K 653<U53=.JK[9,]%%Q,V'O>%#B<0ET7+WMG;W]@!W3TKL[8<'UFGZV*2>
M":S%4AB\W;(")T]X1YT#,]U.2.1FQ61WDBL85Y;=EHZEY5QH;5X:M\_P:%Y.
MJJ;*CJN<W*X<3=R9T-K$16_$10=^/L'>)@Z]852PSB]$A\QN(W%[=VKT;S?;
MT'F!VQO]::43'_2)J<0<%9:XO3Z6%;\QU14@%W8Z5B05:Z[+F:;>K2?P>SMW
M[NR/S61NI\4WF'*L_T(EWKT4R6&.D,'E-48GRTFY7&BQLK/C3&B<1.WK$F@&
MT@C@[W,A].O"&*C_7S'Z'U!+ P04    " #D@%!62SN^/<$#  !9$   &0
M 'AL+W=O<FMS:&5E=',O<VAE970Y,RYX;6RMF-MNXS80AE^%4(MB%^A&!]N*
MG=H"XG@7W8L 1H)M+XI>T-+8(I8B59(^O7U)2E8D1U;MKFYBD9KY9^8326DR
MW7/Q7:8 "ATRRN3,297*'UQ7QBED6-[Q')B^L^8BPTH/Q<:5N0"<6*>,NH'G
MA6Z&"7.BJ9U;BFC*MXH2!DN!Y#;+L#C.@?+]S/&=T\0+V:3*3+C1-,<;> 7U
M+5\*/7(KE81DP"3A# E8SYQ'_V'A!\;!6OQ!8"]KU\B4LN+\NQE\36:.9S("
M"K$R$EC_[. )*#5*.H]_2E&GBFD<Z]<G]2^V>%W,"DMXXO1/DJATYHP=E, :
M;ZEZX?O?H2QH9/1B3J7]B_:EK>>@>"L5STIGG4%&6/&+#R6(FH,?7G (2H?@
MW&%XP6%0.@RN=1B6#D-+IBC%<EA@A:.IX'LDC+56,Q<6IO76Y1-FGONK$OHN
MT7XJ^ISEE!\!T"O>$;:1:$DQ0Y_08Y(0\V P15]9L;S,8_JP (4)_:@MOKTN
MT(>?/TY=I=,P8FY<AIP7(8,+(?T /7.F4HD^LP22IH"K\Z^*"$Y%S(-.Q07$
M=VC@_XH"+PA:$GJZWMUO<5]<[^YU5#.H'LG Z@TNZ+V (@+TWE)H#@S61$GT
MU^-**J$WR=]MO N]8;N>.3D>9(YCF#GZ:) @=N!$O_SDA]YO;:SZ%%OT)-;@
M.*PX#KO4HV?"2+;-D#Z^D.)H!0@HV9 5M4-]-FC[!,5Z*0JRVMKEG>O%WP:X
M.U#@HR-@(=MH=GK>2K,GL0;-445SU$T3'RS-!J_548^S'+,C@H,)*C51+%$.
M(M;KUY#G:P2G,T9;?%+X@"2F^AW3!KK(86)S,*^L7:0WY*X.M#/+6X'V)-8
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
M!O"E,XU'T=:CZ\B*F$!ZBGKA"8J"*.HP:/)V];!#/7F[>F#QIM?L3T_C]5[
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
MEF+&C6+&QKGE>L/5E"X(*CF-29<\QAU3VL ;3-HSW]+HYM3 0\("2%@("8N
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
M;"A[Q(I+@:(@Z$8?DQ^HD(=N_1@#CH I _E^1:EX+J@&JJN9V3]02P,$%
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
M[.;=M+HY:JL;54U@J9DA/?I))GJKFS>WNATF'J\G<!<-;*ZYG\/<WUSK&J\
M63A,^K:?74 VUY#-X5YT^Q)F]Z8MOQM-!+RJ4[W6',S/X6!W7=HK K^*7C2;
M"(?)T1&Q]V9P=$^$C53X6=Q;(B/+9!?G^]L%'%X]W+_B8WG7AMKK<^^#V-^%
M0LOL;XIQI:@VC#,2R3LE.7P_5@M*]_>9V#_)DVUYYX7;),^33?EP+8.53 L#
M]?Y=DN3/3XH)#G?[F/T/4$L#!!0    ( .2 4%8-A+/+& (  -4$   :
M>&PO=V]R:W-H965T<R]S:&5E=#$P."YX;6RUE%%OFS 0Q[^*Y4W3)G4Q@32M
M,D!JFE6MM$I1HVT/TQX,7()5&U/;0/OM9QN"4BF-^C(>P&??_?T[^XZXD^I1
MEP &/0M>Z027QM0+0G1>@J!Z(FNH[,I6*D&--=6.Z%H!+7R0X"0,@CD1E%4X
MC?W<6J6Q; QG%:P5THT05+TL@<LNP5.\GWA@N]*X"9+&-=W!!LS/>JVL14:5
M@@FH-),54K!-\-5TL9PY?^_PBT&G#\;(99))^>B,NR+!@0,"#KEQ"M1^6K@&
MSIV0Q7@:-/&XI0L\'._5;WSN-I>,:KB6_#<K3)G@2XP*V-*&FP?9W<*0S[G3
MRR77_HVZWC>:8Y0WVD@Q!%L"P:K^2Y^'<S@(",_?" B'@-!S]QMYRA4U-(V5
M[)!RWE;-#7RJ/MK"L<I=RL8HN\ILG$DW3:;AJ8'*H.^M?6OT%7U>@:&,ZR\Q
M,78+YTCR06[9RX5OR-U -D'3^1D*@S!"'Q%!NJ0*]&LE8B%'TG D#;WT[)VD
MZ,\]B S4WV.4)Z5<H2]T37-(L*UD#:H%G'[Z,)T'WTZ 1B-HY-6C=X/^L![H
MSH#01V&C_P [&V%G)T]UQ5I60%5HM*8O-.-PAJZ$;"SU&A3:N,L[AMR+7GI1
MU_=M&DR"B^#5,XU)>TA&#JK4-?P]53M6:<1A:U6"R86M>-4W46\86?O"S:2Q
M;>"'I?WO@'(.=GTKI=D;KA?&/UGZ#U!+ P04    " #D@%!6![Y,$V$%  "<
M'@  &@   'AL+W=O<FMS:&5E=',O<VAE970Q,#DN>&ULQ5G1<J,V%/T5#=WI
M[,XD,1(VME/;,[&U.\U#IFFRV3[L]$$QLLTL(!=D._OWE0"#04+$&=J\Q("/
M#O<>?.\]09,#BW\D&THY> F#*)E:&\ZWU[U>LMS0D"17;$LC\<V*Q2'AXC1>
M]Y)M3(F7+@J#'K)MMQ<2/[)FD_3:?3R;L!T/_(C>QR#9A2&)?\YIP Y3"UK'
M"P_^>L/EA=YLLB5K^DCYT_8^%F>]@L7S0QHE/HM 3%=3ZP9>8S22"U+$-Y\>
MDI-C(%-Y9NR'/+GUII8M(Z(!77))0<3'GBYH$$@F$<<_.:E5W%,N/#T^LG])
MDQ?)/).$+ECPE^_QS=0:6<"C*[(+^ ,[_$[SA :2;\F")/T+#CG6ML!REW 6
MYHM%!*$?99_D)1?B9 %T&Q:@? &J+^@W+'#R!<YK%_3S!?U4F2R55 =,.)E-
M8G8 L40+-GF0BIFN%NG[D7SNCSP6W_IB'9\]BA^2MPLHN+T%E]](L"/9XX@\
M\.>.!/[JIQ^MP<URR7813\!'3#GQ@T_@$CP]8O#QPR?P ?@1^+IANT0L2B8]
M+J*2W+UE'L$\BP U1  1N&,1WR3@<^11KTK0$^D4.:%C3G-D9,1T>04<> &0
MC9 FH,7KET/-<OSZY;8A&Z=X0D[*YS0]H<\+<'Q*%P"B2WM\(13;4U%]7&I?
M/K6;0)0QB98T21_@ TUHO!<GWQ]8$ !1)P<2>W_K'E$60E\?@NP]U\F6+.G4
M$LTE);5FO_X"7?LWG;Q=DN&.R"K2]POI^R;VV9P$4LV,CW PIVL_BF1!L!6X
MI['//)V8&>D@)95]=S\;#MU);W^JD?'&YVK4$5E%HT&AT> LC401F]7)Z-Q3
M=1R[ILZ@74%L#.N-2;M%TJXQZ;RR@)B[X"D2/3@=8\^BC1:=\H$NJ;\G\IJL
MQ4<24'F1[^((?+^CX3.-M95HO/&YE=@E&>Z(K"+XL!!\^/Y-<-BE]%V2X8[(
M*M*/"NE'_T43'*EEKC1!%3-R8*W,1THK&)RTBTI&XR*CL3&CQ8;$:^IE&7$&
M%BSAV8_E\XOPTPG5NIBQ$BP<UX)=J)A:9\,JPK4;TH%VZ>%L8T)8U$5JH_7V
MRU;N>8F<82UT'6HPJ$6O SF-\9]X4&B,_P^^H;$V=-@FZ*(=@C40V! R*D-&
MW8Z]G,\\]W0@9?!I0*=E4TVH=)G0Z*1FIP,J*X:31FH:6&;><]MFIVRX*[:J
MIJ5]A/WWGUJP2RNYZ)0-=\56U;^TIO \;_K*T055BPH'<%2O50T*U2<";D-5
M,RO])S0;T+>-L)S4V$Y;(=@(J>93VCMHM##Z2FFMC@MPXWE^.O@N0"8)$&*D
MX^3HQ+4Z#-MU4"$(#>M*F'BJ2I1N"YKM5LLL5RV3$GDK!!LAU;A+3P7-IJIY
MAK>:HD4[!!LAU;=$I6U"9MMT]@Q'JOW1-(97H; .U=@84&FED-E*8;JB<4P]
M\)6\Z K(.,K-W.>.DD[9<%=L55U+OX?0^X]R9/2<9^O?)1ONBJVJ?VE/D=F>
MOG&4YZP5KPQ'2L5J4 -7J5@5-70@:JC8TB0B\TO&MXWRG+0ZGYQ^/3$5!?NH
MWEMU*#1P&Q(KW1<RNZ__=Z8CU6@YH]&X+HB*4M0P0:I2E'8-F>V:>:@CU5!=
MNNZ@/B5U,#BRE?A?;<]0:<^0V9XU#G?4[J3:(=@(J89<^BATWFNK]N&NOFD:
MNF[]#8\&I384K$.=-I0LI][)MEU(Q0]=;G\F(/V)9[M=Q=5BB_4FW5BL79_#
M:YQME)8TV;[MG:@?7_P_']"5H+2OAB*D.-L*S4XXVZ:;@\^,<Q:FAQM*/!I+
M@/A^Q1@_GL@;%!O2LW\!4$L#!!0    ( .2 4%;S0_KX@P,  -\7   -
M>&PO<W1Y;&5S+GAM;-U8T6[:,!3]E2A=IU::&D+60%9 VI"0)FU3I?9A;Y4A
M#EARG,PQ'?1QOU+M;5^Q3]F7S#<."5!?U/9AA8%*['M\SSWVO4Z<]@JUY/1J
M1JER%BD71=^=*96_\[QB,J,I*<ZRG J-))E,B=)=.?6*7%(2%^"4<J_=:H5>
M2IAP!STQ3T>I*IQ)-A>J[_JMVN:8R\=86\.WKF/XAEE,^^[-R>MO\TQ=O'+,
M]>C-T5'KYO1BVWY2 J>N9R4]?P3I60OGU1A&'3Z.>B<W2M[9)"_''VLFXWF,
MN74M;CI,XPD=S#FR3^C/CU]("AID9Q(Z+3OQ[Y\(;PWLIO41VGN,]OY1M&T[
M[4@AM#6PFS:PTUZ-),+;(&O$7K69!KTD$\V>"EQCT)%)2IU;POOND' VE@R\
M$I(ROC3F-A@F&<^DH_1FUE)\L!1W!O9-#_9YQ9,RD<DRMHE@?L?5\"U@U0.!
MC/-:8-LUAD$O)TI1*4:Z4PXNC0\@IVI?+W.M<"K)TF^?NXU#>=%!QIF,J6SN
M+>[*-.AQFH <R:8SN*HL]P!4*DMU(V9DF@E2:EAY5 U-.Z&<7\%-\&NRP;U(
MUG):EK6HFUI0U30TI@/\ZVR&>YVV\RQ>)V>WF?HPU],191\JA5Y*FK!%V5\D
MM0",W<?929[SY7O.IB*E9O*/#CCHD96?,\LDN]/1H%0FVD"EZ]Q2J=ADW?)=
MDOR:+M2JG!8)KKE]@)K_[3I/J:"2\'71NO;W>96?K;@Z-+R$YO*VLJW8*C+H
M[+_&ZJ"T[R+#0Q!Y$.GN'H+(Z !$=E[LKOD4D?XAB&P?@LA@_T4&^[EOO.K@
MNW:ZWCA;UU8'WF'Z[A=X6^)-4&<\9UPQ4?5F+(ZI>'#$UO2*C#G=Y-?C8YJ0
M.5?7-=AWF_9G&K-Y&M6C+F$AJE%-^Q-,SP_K%R@=BXF8+F@\K+IR.BZ;CF[H
MJ-4''+:14?FQ(YB/P>P(8%@<3 'F8[RP./_3?+KH? R&:>M:D2[JTT5]C)<-
M&99?+([=)](?^TRC* C"$%O1X="J8(BM6QC"GYT-TP8>6!R(]+2UQK.-5\CN
M.L!RNJM"L)GBE8C-%%]K0.SK!AY19,\V%@<\L"Q@M0/Q[7&@INP^00!9Q;1A
M.QA'H@A#H!;M-1J&R.J$\+7G!]LE01!%=@0PNX(@P!#8C3B"*0 -&!($Y7-P
MZWGDK9Y37O,O_<%?4$L#!!0    ( .2 4%:7BKL<P    !,"   +    7W)E
M;',O+G)E;'.=DKENPS ,0'_%T)XP!] AB#-E\18$^0%6H@_8$@6*19V_K]JE
M<9 +&7D]/!+<'FE [3BDMHNI&/T04FE:U;@!2+8ECVG.D4*NU"P>-8?20$3;
M8T.P6BP^0"X99K>]9!:G<Z17B%S7G:4]VR]/06^ KSI,<4)I2$LS#O#-TG\R
M]_,,-47E2B.56QIXT^7^=N!)T:$B6!::1<G3HAVE?QW']I#3Z:]C(K1Z6^CY
M<6A4"H[<8R6,<6*T_C6"R0_L?@!02P,$%     @ Y(!05O.YJ0FU!P  /4<
M  \   !X;"]W;W)K8F]O:RYX;6S%G%%SVC@0@/^*AI?KS32'L<$VG:8S)"$I
M,VG"Q9GV\48Q C2U+4ZV2=-??RL[)!(Q._>RX:44,.9#MO1I5ZM\?E3ZYX-2
M/]FO/"O*T]ZZJC:?^OTR78N<EW^IC2C@G:72.:_@J5[URXT6?%&NA:CRK.][
M7MC/N2QZ7S[OSC77??N)JD1:257 B^:%[U(\EJ_OFZ=L*TOY(#-9/9WVFO]G
MHL=R6<A<_A:+TY[78^5:/7Y56OY61<6S)-4JRTY[@_:-[T)7,GWS<F(@[_E#
MV;Q2\8<[#B"GO="#$RZE+JOFB.;\'!BW @YNG]65NI19)?0%K\255O5&%BMS
M&O@5?>MG-.VP>VP;\9/^/\VHEDN9B@N5UKDHJK8=M<@,8%&NY:;LL8+GXK1W
MKK9"LSE?"?.CX%MFB_8'5D!F-9?^).$-/5LTC'0\DWHA*S8KV@_#NQ:6CV#Y
MM%CGMS?)[?7L8G(_O6#)/3Q\F][<)^SVDMW.IW<69(! !D>#/+_]-K<@APCD
M\(B0__@6Y B!'+TCY-GD>G)S/F7)U^GT/K$ 0P0P/!H@^S#G%F2$0$;'N]23
MY*L%&2.0\=$@DZ\3NV>/$<CQ$2&=3C/PL+';H\5,ZCSG^HFI)4ODJI#P,5Y4
M;)*FJBXJ:6.BBB%VS W,"6#B4 !4*LRQI4V&669 K)E++C7[SK-:L&^"E[5^
MBX?Y94 M&%ZN/S+S+YO^6\LMSPS=1\:+!2A[:V-BAAD0*P90X "8S0FGY3"?
M#(B% K?;!F:13Q_9/(,NT3:9:<.-^:!-B4EE0&R5:[CG1,G:!QL*D\B V")7
M2BT>99;9/)@O!L3"F$&$4*S,E[))60JW=V*.&!!+ H9970NXK7[!2=P+Z&-6
M\(FM<*[R7%;-0-;<]N<08T&X(XK4[: ^Y@2?V FS8B'RUECF/>,' P%'V81H
M!$+LA@NA8<0U822,M66EZWTU^)@:?&(UW D8<T%;=R)58/[]R W3@4^L@V3-
MM5BK;"%T^4<SZ%9/-AOF!9_8"TFETI\G9S#>FGZ1FX[[)NK%C. 3&V&:;S+U
M) 1+^!;Z;-GHRX;#S. 3FV%6I"H7[)[_<L<1S X^L1U^"+E:5W U)UNA^0H:
MSMQ]#A[F")_8$8E8F2.:<?A*J)7FF[5,7_(M=AX#4T9 K(RSNI2%*$L(':"[
MELUP8K=A@*DB(%;%M0*PI58YNY3:3IL%F!X"8CW<">.$M*HU]%-V#G?=RKGM
M C0Q16R'I'XHQ;^UN?.FVSUM!9@; FHWP#D6-4SE9C-VTD1>K?Y-__B[MO,H
M ::)@%H36&#MQ/\!9HN V!8'PE?VX9X#B'/1,6\$U'DI+(QU6Q-324 >:+R$
ML;L6_--FPSP2$'L$CV>9G6K&/#(D]LAS0-O1>D/,($-B@^Q"VDXP3")#8HF\
MB6T["3&3#(E-LA_D=@*BRQO$1ND.TSHQ,:,,B8W2$:]U,F(Z&1+KY%!P] QJ
M8V(Z&;YC&-+9AIA$AL>)1SJ4/,1\,CQF7.*N"F(^&1'[I'.2W77-1YA>1L1Z
MP6>+@8V)R69$+!L<<VAC8L89D<<N&.;(QL2\,Z*.9%#,T,9$%]:/&LE$-B:F
MGA&U>E#,V,;$U#,B5L^A@.NDG;[9F)B$1L020C 7"^E@8A(:4:^R=\:%N]5-
M>[X18A(*J==3,$S'E2%FH9#80CBF;:$0LU!(7=F%8MH6"C$+A4=9>M]AVA8*
M,0N%[[?T#KW;R6!<B,K.IX68A<)C+L>[70@M\B*VT![F7I+EQ,;$+!026VB7
M93%76&;./#C$M!,2:^>9ZX2]9'E!YW/^]!R1VYB8=D)B[;QD@TY,1%&8B$(6
MK%H+Z.Y:VTN5$::=B%@[;W-#H.]<Z<H44;.9C8EI)R)?R'^+.2TK"6<R4;"-
MB6DG>O=,VPF[@<O=9H[L>S/"M!.]=[KMQ)1O0'-6]=XR3H1I)R+63A?F:U?Z
M86-BVHFHRXJQ2AAG/(\P[43$VCF0PGR>K=MEG!%:74RLG8.8MW55.G.-"+-0
M1&RA@YAG'*2>VIB8A2)B"QV^Z/M%;C%FH9C80@<QKSCT='O<C#$+Q<06ZDJO
M6P.\C8E9*"8O&NC"O) E7ZVT6-F8F(7B]R\N,S=FEJE'Z$%.:V(6BHDM=* U
MQ5)H#7*R,3$+Q=0IN(YZN)?!W2D]BS$+Q<=:_6DE;V-B%HJ)+81B.J%DC.YR
M(;80CFEG8V+,0C'U.A"*:6=CQIB%QM0;75!,.QLSQBPTIEX(.H39AL0V)F:A
M,;&%.HM,7T<D&Q.ST)C80LXZ[^MXR;-VF=+&Q"PT)D_!.9AVN&;R'S8F9J$Q
ML87V,(TS(0S*9'N#.A<=L]"8V$+[K>DF:)SM@9B%QN]9@[!_T1T+C3$+C8]4
MC0#$/$MK&Q/=;4ELH<.8^^M5 P_?;TGM(;1L(G! T1V7'K6)4-"A XINP/2(
M7=19>6Y\64.T_L <4'0KID=L([<*O3/Y/O#079@>>3C452S3I?6!A^[-],AK
MX;I!GY<-'%!T>Z9'+",4=&\;.+IETZ,.BO;K_0&R^PY%=W)ZU$&17?W_IOC?
MO?#HSDZO$5*_.;S\\GDAEC"(+&[@2TIX/06WS34S#\VY_.'(;!1=UEEFM'=;
M7"N^V/WUE]U?KOGR'U!+ P04    " #D@%!6%&2G9A,#   $0   &@   'AL
M+U]R96QS+W=O<FMB;V]K+GAM;"YR96QSS=M+3MQ %(7AK:!> *Y;[XJ 429,
M(S;0:LQ#]$MM1X'=IP4#.*4,,D'^1U;9\O49?;+L.E>_QNUZ?C[LIZ?GXW3Q
MNMONI^O5TSP??PS#M'D:=^OI\G <]^<K#X?3;CV?EZ?'X;C>O*P?Q\$[EX?3
MUQFKFZNO,R_NWH[C_TP\/#P\;\:?A\WOW;B?_S%X^',XO4Q/XSBO+N[6I\=Q
MOEX-K]O/T]/P?K#+\^35Q>W]]>IT>V^K8>E 7@+YY0,%"126#Q0E4%P^4))
M:?E 60+EY0,5"526#U0E4%T^4)- ;?E YE1&!XC480W0VI1K WAM"K8!Q#8E
MVP!FFZ)M +5-V3: VZ9P&T!N4[H-8+<IW@;0VZO>'J"W5[T]0&_?O6P#]/:J
MMP?H[55O#]#;J]X>H+=7O3U ;Z]Z>X#>7O7V +V]ZNT!>@?5.P#T#JIW .@=
M5.\ T#MT'TL >@?5.P#T#JIW .@=5.\ T#NHW@&@=U"] T#OH'H'@-Y1]8X
MO:/J'0%Z1]4[ O2.JG<$Z!V[C]T O:/J'0%Z1]4[ O2.JG<$Z!U5[PC0.ZK>
M$:!W4KT30.^D>B> WDGU3@"]D^J= 'HGU3L!]$[=STJ WDGU3@"]D^J= 'HG
MU3L!]$ZJ=P+HG57O#- [J]X9H'=6O3- [ZQZ9X#>6?7. +VSZIT!>N=NLPE
M[ZQZ9X#>6?7. +VSZIT!>A?5NP#T+JIW >A=5.\"T+NHW@6@=U&]"T#OHGH7
M@-Y%]2X O4NW61"@=U&]"T#OHGH7@-Y5]:X O:OJ70%Z5]6[ O2NJG<%Z%U5
M[PK0NZK>%:!W5;TK0.^J>E> WK7;[ W0NZK>%:!W4[T;0.^F>C> WDWU;@"]
MF^K= 'HWU;L!]&ZJ=P/HW53O!M"[J=X-H'=3O1M []:5=0!ZF^OK.@"_S76%
M'0<0W%Q7V7$ P\UUI1T'4-Q<5]MQ ,?-=<4=!Y#<7%?=<0#+S77E'0?0W%Q7
MWW$ S\UU!1[WG:)/\]MVG#X3?:PUP+>V+>?SO>/G\]^7'R?[?N4[U\/7&-/-
M7U!+ P04    " #D@%!6T9PSJ'<"  "=/0  $P   %M#;VYT96YT7U1Y<&5S
M72YX;6S-V]]NFS 4Q_%7B;BM K8!&Z:F-^UNMU[L!1@X#0K_A-TN??LYI*VT
MJ8M69=*^-T&)[?,[^$B?NUQ_>YZL6QWZ;G";:.?]]"E)7+VS?>7B<;)#6-F.
M<U_Y\'5^2*:JWE</-E%"Z*0>!V\'O_;'&M'-]9W=5H^=7WT^A)]=.PZ;:+:=
MBU:WIXW'K$U435/7UI4/Z\G3T/R6LGY)B,/)98_;M9.["ANBY-V$X\J? U[.
M?7VR\]PV=G5?S?Y+U8==R:%+G'_NK(O/EWBGQW&[;6O;C/5C'X[$;IIMU;B=
MM;[OXE/1J_/)/MRP/7W*B_.7,N<"P\[[>9Q<F-AL/Q[W.I+CZ?44"MG9M^=?
M\2TQE+[X_>QQVHUM_C([7.^/<=XO\W#)\KC\CG^=\5O]#_:A('VDD#XR2!\Y
MI \-Z<- ^B@@?920/J2@-$(155)(E113)05525%54EB5%%<E!59)D5519%44
M615%5D6155%D5119%45619%54615%%E3BJPI1=:4(FM*D36ER)I29$TILJ84
M65.*K"E%UHPB:T:1-:/(FE%DS2BR9A19,XJL&476C")K1I$UI\B:4V3-*;+F
M%%ESBJPY1=:<(FM.D36GR)I39-44635%5DV155-DU119-45639%54V35%%DU
M159#D=509#4460U%5D.1U5!D-119#4560Y'54&0M*+(6%%D+BJP%1=:"(FM!
MD;6@R%I09"THLA8464N*K"5%UI(B:TF1M:3(6E)D+2FREA192XJL)456*2BT
M2D&Q50H*KE)0=)6"PJL4%%^EH  K!458*2C$2O$_C?T^COM_'+\\X[YJA]?\
M9/E7]LU/4$L! A0#%     @ XX!05@=!36*!    L0   !
M ( !     &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4    " #C@%!658_"R^X
M   K @  $0              @ &O    9&]C4')O<',O8V]R92YX;6Q02P$"
M% ,4    " #C@%!6F5R<(Q &  "<)P  $P              @ ', 0  >&PO
M=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0    ( .. 4%9:?,3(Z08  /PL   8
M              " @0T(  !X;"]W;W)K<VAE971S+W-H965T,2YX;6Q02P$"
M% ,4    " #C@%!6>QO_7SX"  "[!0  &               @($L#P  >&PO
M=V]R:W-H965T<R]S:&5E=#(N>&UL4$L! A0#%     @ XX!05M"RL!E_!@
MQAL  !@              ("!H!$  'AL+W=O<FMS:&5E=',O<VAE970S+GAM
M;%!+ 0(4 Q0    ( .. 4%8*QTLB600  -8/   8              " @548
M  !X;"]W;W)K<VAE971S+W-H965T-"YX;6Q02P$"% ,4    " #C@%!6R1ME
M8<8"  #I!@  &               @('D'   >&PO=V]R:W-H965T<R]S:&5E
M=#4N>&UL4$L! A0#%     @ XX!05K.R3K>O!P  4B(  !@
M ("!X!\  'AL+W=O<FMS:&5E=',O<VAE970V+GAM;%!+ 0(4 Q0    ( ..
M4%81UE>2HP,  (0,   8              " @<4G  !X;"]W;W)K<VAE971S
M+W-H965T-RYX;6Q02P$"% ,4    " #C@%!6@O]#' P)  "B*0  &
M        @(&>*P  >&PO=V]R:W-H965T<R]S:&5E=#@N>&UL4$L! A0#%
M  @ XX!05F8[8T_1"0  A$\  !@              ("!X#0  'AL+W=O<FMS
M:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0    ( .. 4%8$BNK$^0(  ,$'   9
M              " @><^  !X;"]W;W)K<VAE971S+W-H965T,3 N>&UL4$L!
M A0#%     @ XX!05GM6^*;?*   C(4  !D              ("!%T(  'AL
M+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q02P$"% ,4    " #C@%!6#+7)3:L$
M   X"P  &0              @($M:P  >&PO=V]R:W-H965T<R]S:&5E=#$R
M+GAM;%!+ 0(4 Q0    ( .. 4%9AE:W3-@8  !8/   9              "
M@0]P  !X;"]W;W)K<VAE971S+W-H965T,3,N>&UL4$L! A0#%     @ XX!0
M5K\^+V\-"0  _1<  !D              ("!?'8  'AL+W=O<FMS:&5E=',O
M<VAE970Q-"YX;6Q02P$"% ,4    " #C@%!6O-4P>&D#  ! !P  &0
M        @(' ?P  >&PO=V]R:W-H965T<R]S:&5E=#$U+GAM;%!+ 0(4 Q0
M   ( .. 4%;(8^4M]@,   D)   9              " @6"#  !X;"]W;W)K
M<VAE971S+W-H965T,38N>&UL4$L! A0#%     @ XX!05N0RBB_G!@  =1$
M !D              ("!C8<  'AL+W=O<FMS:&5E=',O<VAE970Q-RYX;6Q0
M2P$"% ,4    " #C@%!6"U2I#E<#  !0!P  &0              @(&KC@
M>&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;%!+ 0(4 Q0    ( .. 4%93[*$\
M$P8  '\-   9              " @3F2  !X;"]W;W)K<VAE971S+W-H965T
M,3DN>&UL4$L! A0#%     @ XX!05B]=4+A(!   J0D  !D
M ("!@Y@  'AL+W=O<FMS:&5E=',O<VAE970R,"YX;6Q02P$"% ,4    " #C
M@%!6NS,BZIL%   V#0  &0              @($"G0  >&PO=V]R:W-H965T
M<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    ( .. 4%:(V4$8;00  !@+   9
M          " @=2B  !X;"]W;W)K<VAE971S+W-H965T,C(N>&UL4$L! A0#
M%     @ XX!05I[F\4D=!@  K@\  !D              ("!>*<  'AL+W=O
M<FMS:&5E=',O<VAE970R,RYX;6Q02P$"% ,4    " #C@%!6+QET]@<&  "D
M#P  &0              @(',K0  >&PO=V]R:W-H965T<R]S:&5E=#(T+GAM
M;%!+ 0(4 Q0    ( .. 4%9,P[ _:08  +<1   9              " @0JT
M  !X;"]W;W)K<VAE971S+W-H965T,C4N>&UL4$L! A0#%     @ XX!05BLP
M*5#C"0   AL  !D              ("!JKH  'AL+W=O<FMS:&5E=',O<VAE
M970R-BYX;6Q02P$"% ,4    " #C@%!6_%KP,U@#  ",!P  &0
M    @('$Q   >&PO=V]R:W-H965T<R]S:&5E=#(W+GAM;%!+ 0(4 Q0    (
M .. 4%;V,<-5=PX  'TJ   9              " @5/(  !X;"]W;W)K<VAE
M971S+W-H965T,C@N>&UL4$L! A0#%     @ XX!05C23ZW-H P  N@@  !D
M             ("! =<  'AL+W=O<FMS:&5E=',O<VAE970R.2YX;6Q02P$"
M% ,4    " #C@%!6 3Z$51 %  #-#   &0              @(&@V@  >&PO
M=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+ 0(4 Q0    ( .. 4%8*,M3.3@0
M '0)   9              " @>??  !X;"]W;W)K<VAE971S+W-H965T,S$N
M>&UL4$L! A0#%     @ XX!05N#_'ZSS!0    X  !D              ("!
M;.0  'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6Q02P$"% ,4    " #C@%!6
M-:&L\6P'  !\%@  &0              @(&6Z@  >&PO=V]R:W-H965T<R]S
M:&5E=#,S+GAM;%!+ 0(4 Q0    ( .. 4%:]16<'<@(  '4%   9
M      " @3GR  !X;"]W;W)K<VAE971S+W-H965T,S0N>&UL4$L! A0#%
M  @ XX!05MR*>0^' P  7@@  !D              ("!XO0  'AL+W=O<FMS
M:&5E=',O<VAE970S-2YX;6Q02P$"% ,4    " #D@%!6$O+_18DS  "HN
M&0              @(&@^   >&PO=V]R:W-H965T<R]S:&5E=#,V+GAM;%!+
M 0(4 Q0    ( .2 4%93KA&$1 ,  %P'   9              " @6 L 0!X
M;"]W;W)K<VAE971S+W-H965T,S<N>&UL4$L! A0#%     @ Y(!05CAU-JL/
M!@  T1   !D              ("!VR\! 'AL+W=O<FMS:&5E=',O<VAE970S
M."YX;6Q02P$"% ,4    " #D@%!6_4G^I7P"  !;!0  &0
M@($A-@$ >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM;%!+ 0(4 Q0    ( .2
M4%;\I *.  ,  '8&   9              " @=0X 0!X;"]W;W)K<VAE971S
M+W-H965T-# N>&UL4$L! A0#%     @ Y(!05GBCKMAY @  504  !D
M         ("!"SP! 'AL+W=O<FMS:&5E=',O<VAE970T,2YX;6Q02P$"% ,4
M    " #D@%!6:HO$$\D"   \!@  &0              @(&[/@$ >&PO=V]R
M:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4 Q0    ( .2 4%865N)NQ@,  *X(
M   9              " @;M! 0!X;"]W;W)K<VAE971S+W-H965T-#,N>&UL
M4$L! A0#%     @ Y(!05F?)(1=Q!   1 H  !D              ("!N$4!
M 'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6Q02P$"% ,4    " #D@%!6Q3,#
MX6D%  #(#@  &0              @(%@2@$ >&PO=V]R:W-H965T<R]S:&5E
M=#0U+GAM;%!+ 0(4 Q0    ( .2 4%80]O8]B00  *0,   9
M  " @0!0 0!X;"]W;W)K<VAE971S+W-H965T-#8N>&UL4$L! A0#%     @
MY(!05I"Y@SFI!0  '0\  !D              ("!P%0! 'AL+W=O<FMS:&5E
M=',O<VAE970T-RYX;6Q02P$"% ,4    " #D@%!64]_9A$@'  !T%0  &0
M            @(&@6@$ >&PO=V]R:W-H965T<R]S:&5E=#0X+GAM;%!+ 0(4
M Q0    ( .2 4%84-RB%MP(   T&   9              " @1]B 0!X;"]W
M;W)K<VAE971S+W-H965T-#DN>&UL4$L! A0#%     @ Y(!05EY55PM1 P
M*@<  !D              ("!#64! 'AL+W=O<FMS:&5E=',O<VAE970U,"YX
M;6Q02P$"% ,4    " #D@%!6ES@9FA\$  !(#0  &0              @(&5
M: $ >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;%!+ 0(4 Q0    ( .2 4%;I
M(M'T%00  +T6   9              " @>ML 0!X;"]W;W)K<VAE971S+W-H
M965T-3(N>&UL4$L! A0#%     @ Y(!05EMW"H#; P  #1<  !D
M     ("!-W$! 'AL+W=O<FMS:&5E=',O<VAE970U,RYX;6Q02P$"% ,4
M" #D@%!6I,>%9W<"  !B!P  &0              @(%)=0$ >&PO=V]R:W-H
M965T<R]S:&5E=#4T+GAM;%!+ 0(4 Q0    ( .2 4%8DUF'=>@(  (\'   9
M              " @?=W 0!X;"]W;W)K<VAE971S+W-H965T-34N>&UL4$L!
M A0#%     @ Y(!05A*OF<YT @  J 8  !D              ("!J'H! 'AL
M+W=O<FMS:&5E=',O<VAE970U-BYX;6Q02P$"% ,4    " #D@%!68UU@<L(#
M   O#@  &0              @(%3?0$ >&PO=V]R:W-H965T<R]S:&5E=#4W
M+GAM;%!+ 0(4 Q0    ( .2 4%:M+$A[D@0  ((6   9              "
M@4R! 0!X;"]W;W)K<VAE971S+W-H965T-3@N>&UL4$L! A0#%     @ Y(!0
M5C)<+H9V P  [@\  !D              ("!%88! 'AL+W=O<FMS:&5E=',O
M<VAE970U.2YX;6Q02P$"% ,4    " #D@%!6W/G?#14%  !Q'   &0
M        @('"B0$ >&PO=V]R:W-H965T<R]S:&5E=#8P+GAM;%!+ 0(4 Q0
M   ( .2 4%;,@4%;+@,  "\*   9              " @0Z/ 0!X;"]W;W)K
M<VAE971S+W-H965T-C$N>&UL4$L! A0#%     @ Y(!05LZ[)S/4!@  &S$
M !D              ("!<Y(! 'AL+W=O<FMS:&5E=',O<VAE970V,BYX;6Q0
M2P$"% ,4    " #D@%!6+L1--J,%  #7(@  &0              @(%^F0$
M>&PO=V]R:W-H965T<R]S:&5E=#8S+GAM;%!+ 0(4 Q0    ( .2 4%:]$[G*
M# 8  $HE   9              " @5B? 0!X;"]W;W)K<VAE971S+W-H965T
M-C0N>&UL4$L! A0#%     @ Y(!05@^O&J*$ @  U 8  !D
M ("!FZ4! 'AL+W=O<FMS:&5E=',O<VAE970V-2YX;6Q02P$"% ,4    " #D
M@%!6O.W*FF4$  #9&0  &0              @(%6J $ >&PO=V]R:W-H965T
M<R]S:&5E=#8V+GAM;%!+ 0(4 Q0    ( .2 4%8@+9.6I0,  ($/   9
M          " @?*L 0!X;"]W;W)K<VAE971S+W-H965T-C<N>&UL4$L! A0#
M%     @ Y(!05@_NV/GH!@  _C0  !D              ("!SK ! 'AL+W=O
M<FMS:&5E=',O<VAE970V."YX;6Q02P$"% ,4    " #D@%!6H>:\LVL"  "9
M!@  &0              @('MMP$ >&PO=V]R:W-H965T<R]S:&5E=#8Y+GAM
M;%!+ 0(4 Q0    ( .2 4%9.FA'[$P,  .H)   9              " @8^Z
M 0!X;"]W;W)K<VAE971S+W-H965T-S N>&UL4$L! A0#%     @ Y(!05H"(
M/,CC!   'B   !D              ("!V;T! 'AL+W=O<FMS:&5E=',O<VAE
M970W,2YX;6Q02P$"% ,4    " #D@%!6C#?/W.8"  "G"0  &0
M    @('SP@$ >&PO=V]R:W-H965T<R]S:&5E=#<R+GAM;%!+ 0(4 Q0    (
M .2 4%;I+ [F' <  (A$   9              " @1#& 0!X;"]W;W)K<VAE
M971S+W-H965T-S,N>&UL4$L! A0#%     @ Y(!05B[D4^1< P  P@H  !D
M             ("!8\T! 'AL+W=O<FMS:&5E=',O<VAE970W-"YX;6Q02P$"
M% ,4    " #D@%!6:EXU]OP"  #I!P  &0              @('VT $ >&PO
M=V]R:W-H965T<R]S:&5E=#<U+GAM;%!+ 0(4 Q0    ( .2 4%:$CJV3@0(
M $0'   9              " @2G4 0!X;"]W;W)K<VAE971S+W-H965T-S8N
M>&UL4$L! A0#%     @ Y(!05@^H#\%+ @  @@4  !D              ("!
MX=8! 'AL+W=O<FMS:&5E=',O<VAE970W-RYX;6Q02P$"% ,4    " #D@%!6
M1%H!Y=T)   0DP  &0              @(%CV0$ >&PO=V]R:W-H965T<R]S
M:&5E=#<X+GAM;%!+ 0(4 Q0    ( .2 4%:GC?TRNP(  #4)   9
M      " @7?C 0!X;"]W;W)K<VAE971S+W-H965T-SDN>&UL4$L! A0#%
M  @ Y(!05G2FCJU' P  %0L  !D              ("!:>8! 'AL+W=O<FMS
M:&5E=',O<VAE970X,"YX;6Q02P$"% ,4    " #D@%!6V>X]-LP"  !%"
M&0              @('GZ0$ >&PO=V]R:W-H965T<R]S:&5E=#@Q+GAM;%!+
M 0(4 Q0    ( .2 4%;QJ0ML,@(  "$%   9              " @>KL 0!X
M;"]W;W)K<VAE971S+W-H965T.#(N>&UL4$L! A0#%     @ Y(!05EY,:5F0
M!   UAH  !D              ("!4^\! 'AL+W=O<FMS:&5E=',O<VAE970X
M,RYX;6Q02P$"% ,4    " #D@%!6<@X>M@8#  !U"   &0
M@($:] $ >&PO=V]R:W-H965T<R]S:&5E=#@T+GAM;%!+ 0(4 Q0    ( .2
M4%96H"!X#P,  )@(   9              " @5?W 0!X;"]W;W)K<VAE971S
M+W-H965T.#4N>&UL4$L! A0#%     @ Y(!05A!#<M(:"P  I8P  !D
M         ("!G?H! 'AL+W=O<FMS:&5E=',O<VAE970X-BYX;6Q02P$"% ,4
M    " #D@%!62=F)9,D(  !220  &0              @('N!0( >&PO=V]R
M:W-H965T<R]S:&5E=#@W+GAM;%!+ 0(4 Q0    ( .2 4%;N:%$:D@0  %T2
M   9              " @>X. @!X;"]W;W)K<VAE971S+W-H965T.#@N>&UL
M4$L! A0#%     @ Y(!05K8N7T$T P  QPD  !D              ("!MQ,"
M 'AL+W=O<FMS:&5E=',O<VAE970X.2YX;6Q02P$"% ,4    " #D@%!6^4;U
M"; #  #("P  &0              @($B%P( >&PO=V]R:W-H965T<R]S:&5E
M=#DP+GAM;%!+ 0(4 Q0    ( .2 4%;#O;Z:900  /P5   9
M  " @0D; @!X;"]W;W)K<VAE971S+W-H965T.3$N>&UL4$L! A0#%     @
MY(!05BHRR'S# P  NQ   !D              ("!I1\" 'AL+W=O<FMS:&5E
M=',O<VAE970Y,BYX;6Q02P$"% ,4    " #D@%!62SN^/<$#  !9$   &0
M            @(&?(P( >&PO=V]R:W-H965T<R]S:&5E=#DS+GAM;%!+ 0(4
M Q0    ( .2 4%8KDOM=A0@  !E!   9              " @9<G @!X;"]W
M;W)K<VAE971S+W-H965T.30N>&UL4$L! A0#%     @ Y(!05J\T$B[$ P
M)PX  !D              ("!4S " 'AL+W=O<FMS:&5E=',O<VAE970Y-2YX
M;6Q02P$"% ,4    " #D@%!6O%D!'ZH$  !:$P  &0              @(%.
M- ( >&PO=V]R:W-H965T<R]S:&5E=#DV+GAM;%!+ 0(4 Q0    ( .2 4%9G
M>[+-OP,  !<,   9              " @2\Y @!X;"]W;W)K<VAE971S+W-H
M965T.3<N>&UL4$L! A0#%     @ Y(!05B;NOT.[!   AQ0  !D
M     ("!)3T" 'AL+W=O<FMS:&5E=',O<VAE970Y."YX;6Q02P$"% ,4
M" #D@%!6ZKI^2?0"  "I"   &0              @($70@( >&PO=V]R:W-H
M965T<R]S:&5E=#DY+GAM;%!+ 0(4 Q0    ( .2 4%;B6HP%=0,  (,/   :
M              " @4)% @!X;"]W;W)K<VAE971S+W-H965T,3 P+GAM;%!+
M 0(4 Q0    ( .2 4%9/KM:0UP,  %@6   :              " @>]( @!X
M;"]W;W)K<VAE971S+W-H965T,3 Q+GAM;%!+ 0(4 Q0    ( .2 4%9.&!_$
MJ00  ,08   :              " @?Y, @!X;"]W;W)K<VAE971S+W-H965T
M,3 R+GAM;%!+ 0(4 Q0    ( .2 4%:ON$C(5@4  ' J   :
M  " @=]1 @!X;"]W;W)K<VAE971S+W-H965T,3 S+GAM;%!+ 0(4 Q0    (
M .2 4%;SZJCNS ,   (4   :              " @6U7 @!X;"]W;W)K<VAE
M971S+W-H965T,3 T+GAM;%!+ 0(4 Q0    ( .2 4%9J&:?X& ,  )<*   :
M              " @7%; @!X;"]W;W)K<VAE971S+W-H965T,3 U+GAM;%!+
M 0(4 Q0    ( .2 4%88LDV[?0,  *81   :              " @<%> @!X
M;"]W;W)K<VAE971S+W-H965T,3 V+GAM;%!+ 0(4 Q0    ( .2 4%;7M*Z)
MQP<  /E#   :              " @79B @!X;"]W;W)K<VAE971S+W-H965T
M,3 W+GAM;%!+ 0(4 Q0    ( .2 4%8-A+/+& (  -4$   :
M  " @75J @!X;"]W;W)K<VAE971S+W-H965T,3 X+GAM;%!+ 0(4 Q0    (
M .2 4%8'ODP3804  )P>   :              " @<5L @!X;"]W;W)K<VAE
M971S+W-H965T,3 Y+GAM;%!+ 0(4 Q0    ( .2 4%;S0_KX@P,  -\7   -
M              "  5YR @!X;"]S='EL97,N>&UL4$L! A0#%     @ Y(!0
M5I>*NQS     $P(   L              ( !#'8" %]R96QS+RYR96QS4$L!
M A0#%     @ Y(!05O.YJ0FU!P  /4<   \              ( !]78" 'AL
M+W=O<FMB;V]K+GAM;%!+ 0(4 Q0    ( .2 4%849*=F$P,   1    :
M          "  ==^ @!X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<U!+ 0(4
M Q0    ( .2 4%;1G#.H=P(  )T]   3              "  2*" @!;0V]N
E=&5N=%]4>7!E<UTN>&UL4$L%!@    !U '4 -"   ,J$ @    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>125
<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>126
<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>127
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.4</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>314</ContextCount>
  <ElementCount>501</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>94</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>17</UnitCount>
  <MyReports>
    <Report instance="cgnx-20221231.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-20221231.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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>0000003 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>0000004 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>0000005 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>0000006 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>0000007 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>0000008 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>0000009 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>0000010 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>0000011 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>0000012 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>0000013 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>0000014 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>0000015 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>0000016 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>0000017 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>0000018 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>0000019 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>0000020 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>0000021 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>0000022 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>0000023 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>0000024 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>0000025 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>0000026 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>0000027 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>0000028 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>0000029 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>0000030 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>0000031 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>0000032 - 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-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>0000033 - Disclosure - Restructuring Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringCharges</Role>
      <ShortName>Restructuring Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>0000034 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>0000035 - 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>35</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>0000036 - 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>36</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>0000037 - 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>37</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>0000038 - 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>38</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>0000039 - 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>39</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>0000040 - 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>40</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>0000041 - 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>41</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>0000042 - 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>42</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>0000043 - 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>43</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>0000044 - 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>44</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>0000045 - 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>45</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>0000046 - 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>46</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>0000047 - 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>47</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>0000048 - 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>48</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>0000049 - 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>49</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>0000050 - 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>50</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>0000051 - Disclosure - Restructuring Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesTables</Role>
      <ShortName>Restructuring Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/RestructuringCharges</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>0000052 - 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>52</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>0000053 - 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>53</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>0000054 - 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>54</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>0000055 - 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>55</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>0000056 - 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>56</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>0000057 - 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>57</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>0000058 - 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>58</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>0000059 - Disclosure - Fair Value Measurements - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails</Role>
      <ShortName>Fair Value Measurements - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>0000060 - 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>60</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>0000061 - 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>61</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>0000062 - 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>62</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>0000063 - 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>63</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>0000064 - 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>64</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>0000065 - Disclosure - Inventories - Inventories (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/InventoriesInventoriesDetail</Role>
      <ShortName>Inventories - Inventories (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>0000066 - 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>66</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>0000067 - 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>67</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>0000068 - 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>68</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>0000069 - 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>69</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>0000070 - 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>70</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>0000071 - 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>71</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>0000072 - 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>72</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>0000073 - 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>73</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>0000074 - 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>74</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>0000075 - 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>75</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>0000076 - 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>76</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>0000077 - 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>77</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>0000078 - 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>78</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>0000079 - 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>79</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>0000080 - 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>80</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>0000081 - 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>81</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>0000082 - 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>82</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>0000083 - 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>83</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>0000084 - 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>84</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>0000085 - 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>85</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>0000086 - 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>86</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>0000087 - 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>87</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>0000088 - 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>88</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>0000089 - 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>89</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>0000090 - 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>90</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>0000091 - 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>91</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>0000092 - 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>92</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>0000093 - 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>93</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>0000094 - 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>94</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>0000095 - 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>95</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>0000096 - 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>96</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>0000097 - 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>97</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>0000098 - 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>98</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>0000099 - 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>99</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>0000100 - 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>100</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>0000101 - 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>101</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>0000102 - 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>102</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>0000103 - Disclosure - Business Acquisitions - Sualab Co., Ltd. Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails</Role>
      <ShortName>Business Acquisitions - Sualab Co., Ltd. Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>0000104 - 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>104</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>0000105 - Disclosure - Restructuring Charges - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesAdditionalInformationDetails</Role>
      <ShortName>Restructuring Charges - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>105</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>0000106 - Disclosure - Restructuring Charges - Schedule of Restructuring and Related Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails</Role>
      <ShortName>Restructuring Charges - Schedule of Restructuring and Related Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>106</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R107.htm</HtmlFileName>
      <LongName>0000107 - Disclosure - Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails</Role>
      <ShortName>Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>107</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R108.htm</HtmlFileName>
      <LongName>0000108 - 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>108</Position>
    </Report>
    <Report instance="cgnx-20221231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R109.htm</HtmlFileName>
      <LongName>0000109 - 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>109</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 36 fact(s) appearing in ix:hidden were eligible for transformation: cgnx:MaximumInvestmentOfCompanyInPartnership, cgnx:ProductWarrantyPeriod, cgnx:RevenuePaymentTerms, dei:CurrentFiscalYearEndDate, dei:EntityCommonStockSharesOutstanding, dei:EntityPublicFloat, us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax, us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch, us-gaap:FiniteLivedIntangibleAssetUsefulLife, us-gaap:NumberOfReportableSegments, us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax, us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax, us-gaap:PropertyPlantAndEquipmentUsefulLife, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 -  cgnx-20221231.htm 4</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-K" original="cgnx-20221231.htm">cgnx-20221231.htm</File>
    <File>cgnx-20221231.xsd</File>
    <File>cgnx-20221231_cal.xml</File>
    <File>cgnx-20221231_def.xml</File>
    <File>cgnx-20221231_lab.xml</File>
    <File>cgnx-20221231_pre.xml</File>
    <File>cgnx-20221231xexhibit21.htm</File>
    <File>cgnx-20221231xexhibit231.htm</File>
    <File>cgnx-20221231xexhibit311.htm</File>
    <File>cgnx-20221231xexhibit312.htm</File>
    <File>cgnx-20221231xexhibit321.htm</File>
    <File>cgnx-20221231xexhibit322.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>cgnx-20221231_g1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1">http://fasb.org/srt/2022</BaseTaxonomy>
    <BaseTaxonomy items="1306">http://fasb.org/us-gaap/2022</BaseTaxonomy>
    <BaseTaxonomy items="38">http://xbrl.sec.gov/dei/2022</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>130
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "cgnx-20221231.htm": {
   "axisCustom": 1,
   "axisStandard": 29,
   "baseTaxonomies": {
    "http://fasb.org/srt/2022": 1,
    "http://fasb.org/us-gaap/2022": 1306,
    "http://xbrl.sec.gov/dei/2022": 38
   },
   "contextCount": 314,
   "dts": {
    "calculationLink": {
     "local": [
      "cgnx-20221231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cgnx-20221231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "cgnx-20221231.htm"
     ]
    },
    "labelLink": {
     "local": [
      "cgnx-20221231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cgnx-20221231_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "cgnx-20221231.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://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd",
      "https://xbrl.sec.gov/country/2022/country-2022.xsd",
      "https://xbrl.sec.gov/currency/2022/currency-2022.xsd",
      "https://xbrl.sec.gov/dei/2022/dei-2022.xsd"
     ]
    }
   },
   "elementCount": 789,
   "entityCount": 1,
   "hidden": {
    "http://cognex.com/20221231": 4,
    "http://fasb.org/us-gaap/2022": 35,
    "http://xbrl.sec.gov/dei/2022": 7,
    "total": 46
   },
   "keyCustom": 65,
   "keyStandard": 436,
   "memberCustom": 27,
   "memberStandard": 64,
   "nsprefix": "cgnx",
   "nsuri": "http://cognex.com/20221231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "0000001 - Document - Cover Page",
     "menuCat": "Cover",
     "order": "1",
     "role": "http://cognex.com/role/CoverPage",
     "shortName": "Cover Page",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000010 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "menuCat": "Statements",
     "order": "10",
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R100": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ibc9067130ed84e849433c76631b763ed_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000100 - Disclosure - Weighted Average Shares - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "100",
     "role": "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
     "shortName": "Weighted Average Shares - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ibc9067130ed84e849433c76631b763ed_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R101": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "segment",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000101 - Disclosure - Segment and Geographic Information - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "101",
     "role": "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail",
     "shortName": "Segment and Geographic Information - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NumberOfReportableSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "segment",
      "xsiNil": "false"
     }
    },
    "R102": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000102 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "menuCat": "Details",
     "order": "102",
     "role": "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail",
     "shortName": "Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:NoncurrentAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R103": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i6471b3c847c647949e5a4ea1ffe2f52e_D20200330-20200628",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ImpairmentOfIntangibleAssetsExcludingGoodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000103 - Disclosure - Business Acquisitions - Sualab Co., Ltd. Narrative (Details)",
     "menuCat": "Details",
     "order": "103",
     "role": "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
     "shortName": "Business Acquisitions - Sualab Co., Ltd. Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i909dfecd29f54ff6819dae33a305af1c_D20191016-20191016",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R104": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:GrossLossFromCatastrophes",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000104 - Disclosure - Loss from Fire (Details)",
     "menuCat": "Details",
     "order": "104",
     "role": "http://cognex.com/role/LossfromFireDetails",
     "shortName": "Loss from Fire (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:GrossLossFromCatastrophes",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R105": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated",
      "reportCount": 1,
      "unique": true,
      "unitRef": "employees",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000105 - Disclosure - Restructuring Charges - Additional Information (Details)",
     "menuCat": "Details",
     "order": "105",
     "role": "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails",
     "shortName": "Restructuring Charges - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated",
      "reportCount": 1,
      "unique": true,
      "unitRef": "employees",
      "xsiNil": "false"
     }
    },
    "R106": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringCharges",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000106 - Disclosure - Restructuring Charges - Schedule of Restructuring and Related Costs (Details)",
     "menuCat": "Details",
     "order": "106",
     "role": "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails",
     "shortName": "Restructuring Charges - Schedule of Restructuring and Related Costs (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R107": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringCharges",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000107 - Disclosure - Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)",
     "menuCat": "Details",
     "order": "107",
     "role": "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
     "shortName": "Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "iab5e184732124b319f7003a4ab55dfcf_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:PaymentsForRestructuring",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R108": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i02cdf9af3e804fda94a3d434209cdf3b_I20230216",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000108 - Disclosure - Subsequent Events - (Details)",
     "menuCat": "Details",
     "order": "108",
     "role": "http://cognex.com/role/SubsequentEventsDetails",
     "shortName": "Subsequent Events - (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i02cdf9af3e804fda94a3d434209cdf3b_I20230216",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     }
    },
    "R109": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000109 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)",
     "menuCat": "Details",
     "order": "109",
     "role": "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail",
     "shortName": "Schedule II -Valuation and Qualifying Accounts (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "if4d1e32d070c424fb97dbbaf7592a5df_I20191231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000011 - Disclosure - Summary of Significant Accounting Policies",
     "menuCat": "Notes",
     "order": "11",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPolicies",
     "shortName": "Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000012 - Disclosure - New Pronouncements",
     "menuCat": "Notes",
     "order": "12",
     "role": "http://cognex.com/role/NewPronouncements",
     "shortName": "New Pronouncements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000013 - Disclosure - Fair Value Measurements",
     "menuCat": "Notes",
     "order": "13",
     "role": "http://cognex.com/role/FairValueMeasurements",
     "shortName": "Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000014 - Disclosure - Cash, Cash Equivalents, and Investments",
     "menuCat": "Notes",
     "order": "14",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestments",
     "shortName": "Cash, Cash Equivalents, and Investments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000015 - Disclosure - Inventories",
     "menuCat": "Notes",
     "order": "15",
     "role": "http://cognex.com/role/Inventories",
     "shortName": "Inventories",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000016 - Disclosure - Property, Plant, and Equipment",
     "menuCat": "Notes",
     "order": "16",
     "role": "http://cognex.com/role/PropertyPlantandEquipment",
     "shortName": "Property, Plant, and Equipment",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000017 - Disclosure - Leases Leases",
     "menuCat": "Notes",
     "order": "17",
     "role": "http://cognex.com/role/LeasesLeases",
     "shortName": "Leases Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000018 - Disclosure - Goodwill",
     "menuCat": "Notes",
     "order": "18",
     "role": "http://cognex.com/role/Goodwill",
     "shortName": "Goodwill",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000019 - Disclosure - Intangible Assets",
     "menuCat": "Notes",
     "order": "19",
     "role": "http://cognex.com/role/IntangibleAssets",
     "shortName": "Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:AuditorName",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "false",
     "longName": "0000002 - Document - Audit Information",
     "menuCat": "Cover",
     "order": "2",
     "role": "http://cognex.com/role/AuditInformation",
     "shortName": "Audit Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:AuditorName",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000020 - Disclosure - Accrued Expenses",
     "menuCat": "Notes",
     "order": "20",
     "role": "http://cognex.com/role/AccruedExpenses",
     "shortName": "Accrued Expenses",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000021 - Disclosure - Commitments and Contingencies",
     "menuCat": "Notes",
     "order": "21",
     "role": "http://cognex.com/role/CommitmentsandContingencies",
     "shortName": "Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000022 - Disclosure - Indemnification Provisions",
     "menuCat": "Notes",
     "order": "22",
     "role": "http://cognex.com/role/IndemnificationProvisions",
     "shortName": "Indemnification Provisions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000023 - Disclosure - Derivative Instruments",
     "menuCat": "Notes",
     "order": "23",
     "role": "http://cognex.com/role/DerivativeInstruments",
     "shortName": "Derivative Instruments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000024 - Disclosure - Revenue Recognition",
     "menuCat": "Notes",
     "order": "24",
     "role": "http://cognex.com/role/RevenueRecognition",
     "shortName": "Revenue Recognition",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000025 - Disclosure - Shareholders' Equity",
     "menuCat": "Notes",
     "order": "25",
     "role": "http://cognex.com/role/ShareholdersEquity",
     "shortName": "Shareholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000026 - Disclosure - Stock-Based Compensation",
     "menuCat": "Notes",
     "order": "26",
     "role": "http://cognex.com/role/StockBasedCompensation",
     "shortName": "Stock-Based Compensation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000027 - Disclosure - Employee Savings Plan",
     "menuCat": "Notes",
     "order": "27",
     "role": "http://cognex.com/role/EmployeeSavingsPlan",
     "shortName": "Employee Savings Plan",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000028 - Disclosure - Income Taxes",
     "menuCat": "Notes",
     "order": "28",
     "role": "http://cognex.com/role/IncomeTaxes",
     "shortName": "Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000029 - Disclosure - Weighted Average Shares",
     "menuCat": "Notes",
     "order": "29",
     "role": "http://cognex.com/role/WeightedAverageShares",
     "shortName": "Weighted Average Shares",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000003 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "menuCat": "Statements",
     "order": "3",
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000030 - Disclosure - Segment and Geographic Information",
     "menuCat": "Notes",
     "order": "30",
     "role": "http://cognex.com/role/SegmentandGeographicInformation",
     "shortName": "Segment and Geographic Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000031 - Disclosure - Business Acquisitions",
     "menuCat": "Notes",
     "order": "31",
     "role": "http://cognex.com/role/BusinessAcquisitions",
     "shortName": "Business Acquisitions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:CatastropheTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000032 - Disclosure - Loss from Fire",
     "menuCat": "Notes",
     "order": "32",
     "role": "http://cognex.com/role/LossfromFire",
     "shortName": "Loss from Fire",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:CatastropheTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000033 - Disclosure - Restructuring Charges",
     "menuCat": "Notes",
     "order": "33",
     "role": "http://cognex.com/role/RestructuringCharges",
     "shortName": "Restructuring Charges",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000034 - Disclosure - Subsequent Events",
     "menuCat": "Notes",
     "order": "34",
     "role": "http://cognex.com/role/SubsequentEvents",
     "shortName": "Subsequent Events",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000035 - Disclosure - Schedule II - Valuation and Qualifying Accounts",
     "menuCat": "Notes",
     "order": "35",
     "role": "http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts",
     "shortName": "Schedule II - Valuation and Qualifying Accounts",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000036 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "menuCat": "Policies",
     "order": "36",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000037 - Disclosure - Fair Value Measurements (Tables)",
     "menuCat": "Tables",
     "order": "37",
     "role": "http://cognex.com/role/FairValueMeasurementsTables",
     "shortName": "Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000038 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)",
     "menuCat": "Tables",
     "order": "38",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables",
     "shortName": "Cash, Cash Equivalents, and Investments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000039 - Disclosure - Inventories (Tables)",
     "menuCat": "Tables",
     "order": "39",
     "role": "http://cognex.com/role/InventoriesTables",
     "shortName": "Inventories (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000004 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "menuCat": "Statements",
     "order": "4",
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000040 - Disclosure - Property, Plant, and Equipment (Tables)",
     "menuCat": "Tables",
     "order": "40",
     "role": "http://cognex.com/role/PropertyPlantandEquipmentTables",
     "shortName": "Property, Plant, and Equipment (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000041 - Disclosure - Leases (Tables)",
     "menuCat": "Tables",
     "order": "41",
     "role": "http://cognex.com/role/LeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000042 - Disclosure - Goodwill (Tables)",
     "menuCat": "Tables",
     "order": "42",
     "role": "http://cognex.com/role/GoodwillTables",
     "shortName": "Goodwill (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000043 - Disclosure - Intangible Assets (Tables)",
     "menuCat": "Tables",
     "order": "43",
     "role": "http://cognex.com/role/IntangibleAssetsTables",
     "shortName": "Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000044 - Disclosure - Accrued Expenses (Tables)",
     "menuCat": "Tables",
     "order": "44",
     "role": "http://cognex.com/role/AccruedExpensesTables",
     "shortName": "Accrued Expenses (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000045 - Disclosure - Derivative Instruments (Tables)",
     "menuCat": "Tables",
     "order": "45",
     "role": "http://cognex.com/role/DerivativeInstrumentsTables",
     "shortName": "Derivative Instruments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000046 - Disclosure - Revenue Recognition (Tables)",
     "menuCat": "Tables",
     "order": "46",
     "role": "http://cognex.com/role/RevenueRecognitionTables",
     "shortName": "Revenue Recognition (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000047 - Disclosure - Stock-Based Compensation (Tables)",
     "menuCat": "Tables",
     "order": "47",
     "role": "http://cognex.com/role/StockBasedCompensationTables",
     "shortName": "Stock-Based Compensation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000048 - Disclosure - Income Taxes (Tables)",
     "menuCat": "Tables",
     "order": "48",
     "role": "http://cognex.com/role/IncomeTaxesTables",
     "shortName": "Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000049 - Disclosure - Weighted Average Shares (Tables)",
     "menuCat": "Tables",
     "order": "49",
     "role": "http://cognex.com/role/WeightedAverageSharesTables",
     "shortName": "Weighted Average Shares (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i6c61304b3ca340b18fa1e9bd647f5f68_D20210101-20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000005 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "menuCat": "Statements",
     "order": "5",
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000050 - Disclosure - Segment and Geographic Information (Tables)",
     "menuCat": "Tables",
     "order": "50",
     "role": "http://cognex.com/role/SegmentandGeographicInformationTables",
     "shortName": "Segment and Geographic Information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000051 - Disclosure - Restructuring Charges (Tables)",
     "menuCat": "Tables",
     "order": "51",
     "role": "http://cognex.com/role/RestructuringChargesTables",
     "shortName": "Restructuring Charges (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:InvestmentPolicyTextBlock",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000052 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "52",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
     "shortName": "Summary of Significant Accounting Policies - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:InvestmentPolicyTextBlock",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i26a15cd120ad42108ce81ed3c8d47990_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000053 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "menuCat": "Details",
     "order": "53",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
     "shortName": "Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i26a15cd120ad42108ce81ed3c8d47990_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ProductWarrantyPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000054 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)",
     "menuCat": "Details",
     "order": "54",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails",
     "shortName": "Summary of Significant Accounting Policies - Warranty (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i777a49a23fa64baeaf93b45075e1e39e_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:ProductWarrantyPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:RevenuePaymentTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000055 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "menuCat": "Details",
     "order": "55",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
     "shortName": "Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i1198595cfbdf48e385c2cb3fadcc4e77_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:RevenuePaymentTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AdvertisingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000056 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "menuCat": "Details",
     "order": "56",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails",
     "shortName": "Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AdvertisingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000057 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Details)",
     "menuCat": "Details",
     "order": "57",
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails",
     "shortName": "Summary of Significant Accounting Policies - Comprehensive Income (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i4e8edbf45a9b475787b03e4b32fb6100_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000058 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "menuCat": "Details",
     "order": "58",
     "role": "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail",
     "shortName": "Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i4e8edbf45a9b475787b03e4b32fb6100_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseImpairmentLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000059 - Disclosure - Fair Value Measurements - Additional Information (Details)",
     "menuCat": "Details",
     "order": "59",
     "role": "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails",
     "shortName": "Fair Value Measurements - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i3528e37801244544af9d193380101650_I20221231",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000006 - Statement - CONSOLIDATED BALANCE SHEETS",
     "menuCat": "Statements",
     "order": "6",
     "role": "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000060 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "menuCat": "Details",
     "order": "60",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:DueFromForeignBanks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000061 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "61",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:DueFromForeignBanks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000062 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "menuCat": "Details",
     "order": "62",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000063 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "menuCat": "Details",
     "order": "63",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000064 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "menuCat": "Details",
     "order": "64",
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
     "shortName": "Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000065 - Disclosure - Inventories - Inventories (Detail)",
     "menuCat": "Details",
     "order": "65",
     "role": "http://cognex.com/role/InventoriesInventoriesDetail",
     "shortName": "Inventories - Inventories (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000066 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "menuCat": "Details",
     "order": "66",
     "role": "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
     "shortName": "Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisposals",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000067 - Disclosure - Property, Plant and Equipment - Additional Information (Details)",
     "menuCat": "Details",
     "order": "67",
     "role": "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
     "shortName": "Property, Plant and Equipment - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000068 - Disclosure - Leases (Details)",
     "menuCat": "Details",
     "order": "68",
     "role": "http://cognex.com/role/LeasesDetails",
     "shortName": "Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000069 - Disclosure - Leases - Schedule of Payments (Details)",
     "menuCat": "Details",
     "order": "69",
     "role": "http://cognex.com/role/LeasesScheduleofPaymentsDetails",
     "shortName": "Leases - Schedule of Payments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000007 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "menuCat": "Statements",
     "order": "7",
     "role": "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000070 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "menuCat": "Details",
     "order": "70",
     "role": "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
     "shortName": "Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i8e0d073af74d4c279e60b0eb6a88f53f_I20201231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000071 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)",
     "menuCat": "Details",
     "order": "71",
     "role": "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
     "shortName": "Intangible Assets - Amortized Intangible Assets (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000072 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "menuCat": "Details",
     "order": "72",
     "role": "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail",
     "shortName": "Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic495a3bd530f4ebca6eb231ec7e6472d_I20221207",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000073 - Disclosure - Intangible Assets - Narrative (Details)",
     "menuCat": "Details",
     "order": "73",
     "role": "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
     "shortName": "Intangible Assets - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic495a3bd530f4ebca6eb231ec7e6472d_I20221207",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000074 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "menuCat": "Details",
     "order": "74",
     "role": "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail",
     "shortName": "Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000075 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "menuCat": "Details",
     "order": "75",
     "role": "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail",
     "shortName": "Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i8e0d073af74d4c279e60b0eb6a88f53f_I20201231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000076 - Disclosure - Commitments and Contingencies - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "76",
     "role": "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail",
     "shortName": "Commitments and Contingencies - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000077 - Disclosure - Derivative Instruments - Additional Details (Details)",
     "menuCat": "Details",
     "order": "77",
     "role": "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
     "shortName": "Derivative Instruments - Additional Details (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i7ecee748a7894aa6a34f131488958cd1_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "eur",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000078 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)",
     "menuCat": "Details",
     "order": "78",
     "role": "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails",
     "shortName": "Derivative Instruments - Outstanding Forward Contracts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i7ecee748a7894aa6a34f131488958cd1_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "eur",
      "xsiNil": "false"
     }
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000079 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)",
     "menuCat": "Details",
     "order": "79",
     "role": "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
     "shortName": "Derivative Instruments - Balance Sheet Location (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i20009c9acfef4520a2b96da0be7ba062_I20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:DerivativeAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000008 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "menuCat": "Statements",
     "order": "8",
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:StockOptionPlanExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R80": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000080 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "menuCat": "Details",
     "order": "80",
     "role": "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
     "shortName": "Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R81": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000081 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "menuCat": "Details",
     "order": "81",
     "role": "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
     "shortName": "Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0993d11081f74ac1aad0987cf75ae3e6_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R82": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CapitalizedContractCostGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000082 - Disclosure - Revenue Recognition - Narratives (Details)",
     "menuCat": "Details",
     "order": "82",
     "role": "http://cognex.com/role/RevenueRecognitionNarrativesDetails",
     "shortName": "Revenue Recognition - Narratives (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CapitalizedContractCostGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R83": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000083 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "menuCat": "Details",
     "order": "83",
     "role": "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
     "shortName": "Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i18aac435bfc44c8d91524b6f7ac4c4bd_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R84": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000084 - Disclosure - Revenue Recognition - Allowance for Credit Loss (Details)",
     "menuCat": "Details",
     "order": "84",
     "role": "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails",
     "shortName": "Revenue Recognition - Allowance for Credit Loss (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i8e0d073af74d4c279e60b0eb6a88f53f_I20201231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R85": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000085 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "menuCat": "Details",
     "order": "85",
     "role": "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails",
     "shortName": "Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i8e0d073af74d4c279e60b0eb6a88f53f_I20201231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R86": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000086 - Disclosure - Shareholders' Equity - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "86",
     "role": "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail",
     "shortName": "Shareholders' Equity - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i6d16014c79974e6fb04ffdb4c2528fbe_I20180425",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:CommonStockSharesAuthorized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R87": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:NumberOfGroupsWithinEmployeePopulation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "group",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000087 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "87",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
     "shortName": "Stock-Based Compensation Expense - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:NumberOfGroupsWithinEmployeePopulation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "group",
      "xsiNil": "false"
     }
    },
    "R88": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000088 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "menuCat": "Details",
     "order": "88",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail",
     "shortName": "Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R89": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "id4860aff35104dc9a6211278167eb085_D20220101-20221231",
      "decimals": "3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000089 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "menuCat": "Details",
     "order": "89",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
     "shortName": "Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "id4860aff35104dc9a6211278167eb085_D20220101-20221231",
      "decimals": "3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i009bdd105744470f92f9842dbdccb264_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000009 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "menuCat": "Statements",
     "order": "9",
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i009bdd105744470f92f9842dbdccb264_I20191231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R90": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ib5f16cd1416c489a93f58f559fee5607_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000090 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "menuCat": "Details",
     "order": "90",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
     "shortName": "Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ib5f16cd1416c489a93f58f559fee5607_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R91": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
      "reportCount": 1,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000091 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "menuCat": "Details",
     "order": "91",
     "role": "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail",
     "shortName": "Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic2ae8f77de9b4c799265cfb17a22c13f_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R92": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i51307a0012ee4d178b5c962dbfad699c_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000092 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)",
     "menuCat": "Details",
     "order": "92",
     "role": "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
     "shortName": "Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "icff6d7efc96d4b3c94321d1103e654df_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R93": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000093 - Disclosure - Employee Savings Plan - Additional Information (Detail)",
     "menuCat": "Details",
     "order": "93",
     "role": "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail",
     "shortName": "Employee Savings Plan - Additional Information (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R94": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000094 - Disclosure - Income Taxes - Additional Information (Details)",
     "menuCat": "Details",
     "order": "94",
     "role": "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
     "shortName": "Income Taxes - Additional Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R95": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000095 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (Details)",
     "menuCat": "Details",
     "order": "95",
     "role": "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails",
     "shortName": "Income Taxes - Constituents of Provision for Income Taxes (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R96": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "2",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unitRef": "number",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000096 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "menuCat": "Details",
     "order": "96",
     "role": "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails",
     "shortName": "Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "2",
      "lang": "en-US",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R97": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfIncomeTaxContingenciesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i0a741b855258479e8feae873870a21fe_I20211231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000097 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "menuCat": "Details",
     "order": "97",
     "role": "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails",
     "shortName": "Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfIncomeTaxContingenciesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i8e0d073af74d4c279e60b0eb6a88f53f_I20201231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R98": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000098 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)",
     "menuCat": "Details",
     "order": "98",
     "role": "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails",
     "shortName": "Income Taxes - Constituents of Deferred Tax Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "i393d75f8d66f45f28c85f12a0a1cb95c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R99": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000099 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "menuCat": "Details",
     "order": "99",
     "role": "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail",
     "shortName": "Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "cgnx-20221231.htm",
      "contextRef": "ic46e85f6579a4849a73b443251f6f283_D20220101-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 94,
   "tag": {
    "cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment",
        "label": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AgencyBondsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agency bonds fair value disclosure.",
        "label": "Agency Bonds Fair Value Disclosure",
        "terseLabel": "Agency bonds"
       }
      }
     },
     "localname": "AgencyBondsFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AgencyBondsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agency bond.",
        "label": "Agency Bonds [Member]",
        "terseLabel": "Agency Bonds [Member]"
       }
      }
     },
     "localname": "AgencyBondsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ApplicationofCustomerSpecificSolutionsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Application of Customer Specific Solutions [Member]",
        "label": "Application of Customer Specific Solutions [Member]",
        "terseLabel": "Application-specific customer solutions"
       }
      }
     },
     "localname": "ApplicationofCustomerSpecificSolutionsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_AssetBackedSecuritiesFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Asset Backed Securities Fair Value Disclosure",
        "label": "Asset Backed Securities Fair Value Disclosure",
        "verboseLabel": "Asset-backed securities"
       }
      }
     },
     "localname": "AssetBackedSecuritiesFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AuditInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Audit Information",
        "label": "Audit Information [Abstract]"
       }
      }
     },
     "localname": "AuditInformationAbstract",
     "nsuri": "http://cognex.com/20221231",
     "xbrltype": "stringItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "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",
        "terseLabel": "available for sale securities debt maturities after five years before seven years fair value"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "order": 5.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value.",
        "label": "Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value",
        "terseLabel": "4-5 Years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value",
        "terseLabel": "1-2 Years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "order": 4.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Available-for-sale securities, debt maturities after third year but before fourth year, fair value.",
        "label": "Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value",
        "terseLabel": "3-4 Years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "order": 3.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Available-for-sale securities, debt maturities after second year but before third year, fair value.",
        "label": "Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value",
        "terseLabel": "2-3 Years"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Available-for-sale Securities, Debt Maturities, Effective Term, Maximum",
        "label": "Available-for-sale Securities, Debt Maturities, Effective Term, Maximum",
        "terseLabel": "Effective maturity of investments"
       }
      }
     },
     "localname": "AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cash, cash equivalents, short term and long term investments.",
        "label": "Cash Cash Equivalents Short Term And Long Term Investments",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "CashCashEquivalentsShortTermAndLongTermInvestments",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_CatastropheTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Catastrophe",
        "label": "Catastrophe [Text Block]",
        "terseLabel": "Loss from Fire"
       }
      }
     },
     "localname": "CatastropheTextBlock",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LossfromFire"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfFourYears": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Company contributions vest at end of four years.",
        "label": "Company Contributions Vest At End Of Four Years",
        "totalLabel": "Company contributions vest at end of four years"
       }
      }
     },
     "localname": "CompanyContributionsVestAtEndOfFourYears",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfOneYear": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "order": 1.0,
       "parentTag": "cgnx_CompanyContributionsVestAtEndOfFourYears",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Company Contributions Vest At End Of One Year",
        "label": "Company Contributions Vest At End Of One Year",
        "terseLabel": "Company contributions vest at end of one year"
       }
      }
     },
     "localname": "CompanyContributionsVestAtEndOfOneYear",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfThreeYears": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "order": 3.0,
       "parentTag": "cgnx_CompanyContributionsVestAtEndOfFourYears",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Company contributions vest at end of three years.",
        "label": "Company Contributions Vest At End Of Three Years",
        "terseLabel": "Company contributions vest at end of three years"
       }
      }
     },
     "localname": "CompanyContributionsVestAtEndOfThreeYears",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_CompanyContributionsVestAtEndOfTwoYear": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "order": 2.0,
       "parentTag": "cgnx_CompanyContributionsVestAtEndOfFourYears",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Company contributions vest at end of two year.",
        "label": "Company Contributions Vest At End Of Two Year",
        "terseLabel": "Company contributions vest at end of two years"
       }
      }
     },
     "localname": "CompanyContributionsVestAtEndOfTwoYear",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Completed Technologies And Other Intangible Assets [Member]",
        "label": "Completed Technologies And Other Intangible Assets [Member]",
        "terseLabel": "Completed Technologies And Other Intangible Assets [Member]"
       }
      }
     },
     "localname": "CompletedTechnologiesAndOtherIntangibleAssetsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of cash cash equivalents and investments.",
        "label": "Components Of Cash Cash Equivalents And Investments Table [Table Text Block]",
        "terseLabel": "Components of Cash, Cash Equivalents and Investments"
       }
      }
     },
     "localname": "ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_ComputerHardwareAndSoftwareMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Computer Hardware and Software Member.",
        "label": "Computer Hardware And Software [Member]",
        "terseLabel": "Computer Hardware and Software [Member]"
       }
      }
     },
     "localname": "ComputerHardwareAndSoftwareMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Concentrations of Risk.",
        "label": "Concentrations Of Risk Policy [Policy Text Block]",
        "terseLabel": "Concentrations of Risk"
       }
      }
     },
     "localname": "ConcentrationsOfRiskPolicyPolicyTextBlock",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_ContractLiabilityForeignExchangeRateChanges": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract Liability Foreign Exchange Rate Changes",
        "label": "Contract Liability Foreign Exchange Rate Changes",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "ContractLiabilityForeignExchangeRateChanges",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with Customer, Liability, Current And Prior Period Revenue Recognized",
        "label": "Contract with Customer, Liability, Current And Prior Period Revenue Recognized",
        "negatedTerseLabel": "Recognition of revenue deferred in prior period"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract With Customer, Liability, Period Increase (Decrease)",
        "label": "Contract With Customer, Liability, Period Increase (Decrease)",
        "terseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityPeriodIncreaseDecrease",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_CorporateBondsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Corporate bonds fair value disclosure.",
        "label": "Corporate Bonds Fair Value Disclosure",
        "terseLabel": "Corporate bonds"
       }
      }
     },
     "localname": "CorporateBondsFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_CurrencytranslationadjustmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Currency translation adjustment [Abstract]",
        "label": "Currency translation adjustment [Abstract]",
        "terseLabel": "Foreign currency translation adjustments:"
       }
      }
     },
     "localname": "CurrencytranslationadjustmentAbstract",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_Customer1Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer 1",
        "label": "Customer 1 [Member]",
        "terseLabel": "Customer 1 [Member]"
       }
      }
     },
     "localname": "Customer1Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_Customer2Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer 2",
        "label": "Customer 2 [Member]",
        "terseLabel": "Customer 2 [Member]"
       }
      }
     },
     "localname": "Customer2Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_CustomerContractsAndRelationshipsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer Contracts And Relationships [Member]",
        "label": "Customer Contracts And Relationships [Member]",
        "terseLabel": "Customer Contracts And Relationships [Member]",
        "verboseLabel": "Customer Relationships [Member]"
       }
      }
     },
     "localname": "CustomerContractsAndRelationshipsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_CustomerContractsLiabilityCurrentRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer Contracts Liability Current [Roll Forward]",
        "label": "Customer Contracts Liability Current [Roll Forward]",
        "terseLabel": "Customer Contracts Liability, Current"
       }
      }
     },
     "localname": "CustomerContractsLiabilityCurrentRollForward",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_December2022Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "December 2022",
        "label": "December 2022 [Member]",
        "terseLabel": "December 2022"
       }
      }
     },
     "localname": "December2022Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred income tax assets (liabilities), net",
        "label": "Deferred income tax assets (liabilities), net",
        "totalLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsLiabilitiesNet",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 1.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, Capitalization Of Research And Development Expenses",
        "label": "Deferred Tax Assets, Capitalization Of Research And Development Expenses",
        "terseLabel": "Capitalization of R&amp;D expenses"
       }
      }
     },
     "localname": "DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsForeignTaxStructureChange": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, Foreign Tax Structure Change",
        "label": "Deferred Tax Assets, Foreign Tax Structure Change",
        "terseLabel": "Foreign tax structure deferred tax asset"
       }
      }
     },
     "localname": "DeferredTaxAssetsForeignTaxStructureChange",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 4.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, Intangible Asset, Change in Tax Structure",
        "label": "Deferred Tax Assets, Intangible Asset, Change in Tax Structure",
        "terseLabel": "Intangible asset in connection with change in tax structure"
       }
      }
     },
     "localname": "DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsOtherNoncurrent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 5.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred tax assets other non current.",
        "label": "Deferred Tax Assets Other Noncurrent",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxAssetsOtherNoncurrent",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, Tax Credit Carryforwards, State",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, State",
        "terseLabel": "Deferred Tax Assets, Tax Credit Carryforwards, State"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsState",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, With Jurisdictional Netting, Gross",
        "label": "Deferred Tax Assets, With Jurisdictional Netting, Gross",
        "totalLabel": "Total deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsWithJurisdictionalNettingGross",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 1.0,
       "parentTag": "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "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",
        "negatedTerseLabel": "GILTI tax basis differences in connection with change in tax structure",
        "terseLabel": "GILTI tax basis differences"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discrete Tax Expense - Foreign Tax Filing Adjustments",
        "label": "Discrete Tax Expense - Foreign Tax Filing Adjustments [Member]",
        "terseLabel": "Discrete Tax Expense - Foreign Tax Filing Adjustments [Member]"
       }
      }
     },
     "localname": "DiscreteTaxExpenseForeignTaxFilingAdjustmentsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DiscreteTaxExpenseOtherTaxMattersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discrete Tax Expense - Other Tax Matters",
        "label": "Discrete Tax Expense - Other Tax Matters [Member]",
        "terseLabel": "Discrete Tax Expense - Other Tax Matters"
       }
      }
     },
     "localname": "DiscreteTaxExpenseOtherTaxMattersMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DiscreteTaxExpenseReturnToProvisionAdjustmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discrete Tax Expense - Return-To-Provision Adjustment",
        "label": "Discrete Tax Expense - Return-To-Provision Adjustment [Member]",
        "terseLabel": "Discrete Tax Expense - Return-To-Provision Adjustment"
       }
      }
     },
     "localname": "DiscreteTaxExpenseReturnToProvisionAdjustmentMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DiscreteTaxItemsAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discrete Tax Items",
        "label": "Discrete Tax Items [Axis]",
        "terseLabel": "Discrete Tax Items [Axis]"
       }
      }
     },
     "localname": "DiscreteTaxItemsAxis",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_DiscreteTaxItemsDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discrete Tax Items",
        "label": "Discrete Tax Items [Domain]",
        "terseLabel": "Discrete Tax Items [Domain]"
       }
      }
     },
     "localname": "DiscreteTaxItemsDomain",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DistributionNetworksAndCustomerRelationshipsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Distribution Networks and Customer Relationships",
        "label": "Distribution Networks and Customer Relationships [Member]",
        "terseLabel": "Distribution Networks and Customer Relationships"
       }
      }
     },
     "localname": "DistributionNetworksAndCustomerRelationshipsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_DueFromForeignBanks": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Due from foreign banks.",
        "label": "Due From Foreign Banks",
        "terseLabel": "Cash balance included foreign bank balance"
       }
      }
     },
     "localname": "DueFromForeignBanks",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent",
        "negatedTerseLabel": "Discrete tax benefit for audit settlements"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAuditSettlementPercent",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Catastrophic Event, Amount",
        "label": "Effective Income Tax Rate Reconciliation, Catastrophic Event, Amount",
        "terseLabel": "Decrease in tax expense, catastrophic event"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationCatastrophicEventAmount",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Discrete Tax Expense (Benefit) , Amount",
        "label": "Effective Income Tax Rate Reconciliation, Discrete Tax Expense (Benefit) , Amount",
        "negatedTerseLabel": "Discrete income tax benefits"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationDiscreteTaxExpenseBenefitAmount",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Executive Compensation, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Executive Compensation, Percent",
        "terseLabel": "Limitation on executive compensation"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Increase In Tax Reserve, Amount",
        "label": "Effective Income Tax Rate Reconciliation, Increase In Tax Reserve, Amount",
        "terseLabel": "Increase in tax reserves"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationIncreaseInTaxReserveAmount",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Rate Revaluation On State Deferred Tax Assets, Amount",
        "label": "Effective Income Tax Rate Reconciliation, Rate Revaluation On State Deferred Tax Assets, Amount",
        "terseLabel": "Decrease in tax expense, rate revaluation on state deferred tax assets"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationRateRevaluationOnStateDeferredTaxAssetsAmount",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Effective Income Tax Rate Reconciliation, Release Of Reserves, Amount",
        "label": "Effective Income Tax Rate Reconciliation, Release Of Reserves, Amount",
        "terseLabel": "Decrease in tax expense, releases of reserves"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationReleaseOfReservesAmount",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Employee service share based compensation recognized period costs capitalized amount.",
        "label": "Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount",
        "terseLabel": "Compensation expense capitalized"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_EnShapeGmbHMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "EnShape GmbH",
        "label": "EnShape GmbH [Member]",
        "terseLabel": "EnShape GmbH [Member]"
       }
      }
     },
     "localname": "EnShapeGmbHMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Estimated forfeiture rate for unvested options for all non-senior management.",
        "label": "Estimated Forfeiture Rate For Unvested Options For All Non Senior Management",
        "terseLabel": "Estimated forfeiture rate for unvested options for all non-senior management"
       }
      }
     },
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Estimated forfeiture rate for unvested options for senior management.",
        "label": "Estimated Forfeiture Rate For Unvested Options For Senior Management",
        "terseLabel": "Estimated forfeiture rate for unvested options for senior management"
       }
      }
     },
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_ExcessAndObsoleteInventoryCharges": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Excess and Obsolete Inventory Charges",
        "label": "Excess and Obsolete Inventory Charges",
        "terseLabel": "Excess and obsolete inventory charges"
       }
      }
     },
     "localname": "ExcessAndObsoleteInventoryCharges",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ExpirationPeriodOfStockOptionPlan": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expiration period of stock option plan.",
        "label": "Expiration Period Of Stock Option Plan",
        "terseLabel": "Expiration period of stock option plan"
       }
      }
     },
     "localname": "ExpirationPeriodOfStockOptionPlan",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_ForeignTaxBenefitGainsTaxedOutsideUSMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Foreign Tax Benefit - Gains Taxed Outside U.S.",
        "label": "Foreign Tax Benefit - Gains Taxed Outside U.S. [Member]",
        "terseLabel": "Foreign Tax Benefit - Gains Taxed Outside U.S. [Member]"
       }
      }
     },
     "localname": "ForeignTaxBenefitGainsTaxedOutsideUSMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ForeignTaxExpenseTransferPriceAdjustmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Foreign Tax Expense - Transfer Price Adjustment",
        "label": "Foreign Tax Expense - Transfer Price Adjustment [Member]",
        "terseLabel": "Foreign Tax Expense - Transfer Price Adjustment [Member]"
       }
      }
     },
     "localname": "ForeignTaxExpenseTransferPriceAdjustmentMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_GViVenturesInc.Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "GVi Ventures, Inc. [Member]",
        "label": "GVi Ventures, Inc. [Member]",
        "terseLabel": "GVi Ventures, Inc."
       }
      }
     },
     "localname": "GViVenturesInc.Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_GreaterChinaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Greater China [Member]",
        "label": "Greater China [Member]",
        "terseLabel": "Greater China [Member]",
        "verboseLabel": "Greater China [Member]"
       }
      }
     },
     "localname": "GreaterChinaMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_GrossLossFromCatastrophes": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gross Loss from Catastrophes",
        "label": "Gross Loss from Catastrophes",
        "terseLabel": "Gross Loss from Catastrophes"
       }
      }
     },
     "localname": "GrossLossFromCatastrophes",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_HardwareAndSoftwareMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Hardware and software.",
        "label": "Hardware And Software [Member]",
        "terseLabel": "Computer Hardware And Software [Member]"
       }
      }
     },
     "localname": "HardwareAndSoftwareMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Increase (decrease) in compensation expense due to revised estimated forfeiture rates.",
        "label": "Increase (Decrease) In Compensation Expense Due To Revised Estimated Forfeiture Rates",
        "terseLabel": "Increase in compensation expense due to revised estimated forfeiture rates"
       }
      }
     },
     "localname": "IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_IndemnificationProvisionsTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Indemnification Provisions [Text Block]",
        "terseLabel": "Indemnification Provisions"
       }
      }
     },
     "localname": "IndemnificationProvisionsTextBlock",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_InvestmentDurationAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Investment Duration",
        "label": "Investment Duration [Axis]",
        "terseLabel": "Investment Duration [Axis]"
       }
      }
     },
     "localname": "InvestmentDurationAxis",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "cgnx_InvestmentDurationDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Investment Duration [Domain]",
        "label": "Investment Duration [Domain]",
        "terseLabel": "Investment Duration [Domain]"
       }
      }
     },
     "localname": "InvestmentDurationDomain",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lessee, Operating Lease, Option to Renew, Term of Contract",
        "label": "Lessee, Operating Lease, Option to Renew, Term of Contract",
        "terseLabel": "Lessee, Operating Lease, Option to Renew, Term of Contract"
       }
      }
     },
     "localname": "LesseeOperatingLeaseOptionToRenewTermOfContract",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_LongTermInvestmentsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long-term investments.",
        "label": "Long Term Investments [Member]",
        "terseLabel": "Long-term investments [Member]"
       }
      }
     },
     "localname": "LongTermInvestmentsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum decrease in income tax expense due to release in reserves.",
        "label": "Maximum Decrease In Income Tax Expense Due To Release In Reserves",
        "terseLabel": "Maximum decrease in income tax expense due to release in reserves"
       }
      }
     },
     "localname": "MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_MaximumInvestmentOfCompanyInPartnership": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum investment of the company in partnership.",
        "label": "Maximum Investment Of Company In Partnership",
        "terseLabel": "Maximum investment of the company in partnership"
       }
      }
     },
     "localname": "MaximumInvestmentOfCompanyInPartnership",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "cgnx_May2020Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "May 2020",
        "label": "May 2020 [Member]",
        "terseLabel": "May 2020"
       }
      }
     },
     "localname": "May2020Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Minimum age to be eligible to defined contribution plan.",
        "label": "Minimum Age To Be Eligible To Defined Contribution Plan",
        "terseLabel": "Minimum age to be eligible to defined contribution plan"
       }
      }
     },
     "localname": "MinimumAgeToBeEligibleToDefinedContributionPlan",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Minimum decrease in income tax expense due to release in reserves.",
        "label": "Minimum Decrease In Income Tax Expense Due To Release In Reserves",
        "terseLabel": "Minimum decrease in income tax expense due to release in reserves"
       }
      }
     },
     "localname": "MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_MoneyMarketInstrumentsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Money market instruments fair value disclosure.",
        "label": "Money Market Instruments Fair Value Disclosure",
        "terseLabel": "Money market instruments"
       }
      }
     },
     "localname": "MoneyMarketInstrumentsFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_MunicipalBondsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Municipal bonds fair value disclosure.",
        "label": "Municipal Bonds Fair Value Disclosure",
        "terseLabel": "Municipal bonds"
       }
      }
     },
     "localname": "MunicipalBondsFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_NatureOfOperationsPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Nature of Operations.",
        "label": "Nature Of Operations [Policy Text Block]",
        "terseLabel": "Nature of Operations"
       }
      }
     },
     "localname": "NatureOfOperationsPolicyTextBlock",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "cgnx_NonCashLossFromCatastrophes": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 20.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Non-cash, Loss from Catastrophes",
        "label": "Non-cash, Loss from Catastrophes",
        "terseLabel": "Non-cash, loss from catastrophes"
       }
      }
     },
     "localname": "NonCashLossFromCatastrophes",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_NoncurrentDeferredTaxAssetsDeprecation": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 7.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Noncurrent deferred tax assets deprecation.",
        "label": "Noncurrent Deferred Tax Assets Deprecation",
        "terseLabel": "Depreciation"
       }
      }
     },
     "localname": "NoncurrentDeferredTaxAssetsDeprecation",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_NumberOfGroupsWithinEmployeePopulation": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of groups within employee population.",
        "label": "Number Of Groups Within Employee Population",
        "terseLabel": "Number of groups within the employee population"
       }
      }
     },
     "localname": "NumberOfGroupsWithinEmployeePopulation",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "integerItemType"
    },
    "cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Operating Lease, Expense, No Liability Or Asset Recognized",
        "label": "Operating Lease, Expense, No Liability Or Asset Recognized",
        "terseLabel": "Operating lease expense for which no liability or asset was recognized"
       }
      }
     },
     "localname": "OperatingLeaseExpenseNoLiabilityOrAssetRecognized",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_OperatingLeaseLiabilityDiscountedPresentValue": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Operating Lease, Liability, Discounted Present Value",
        "label": "Operating Lease, Liability, Discounted Present Value",
        "terseLabel": "Operating lease, liability, discounted present value"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityDiscountedPresentValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset",
        "label": "Operating Lease, Right-Of-Use Asset, Carrying Value Of Impaired Asset",
        "terseLabel": "Carrying value of lease assets"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAssetCarryingValueOfImpairedAsset",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_OtherAsiaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other Asia [Member]",
        "label": "Other Asia [Member]",
        "terseLabel": "Other Asia [Member]"
       }
      }
     },
     "localname": "OtherAsiaMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_OtherGeographicAreaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other Geographic Area [Member]",
        "label": "Other Geographic Area [Member]",
        "terseLabel": "Other [Member]"
       }
      }
     },
     "localname": "OtherGeographicAreaMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ProductCostOfRevenueMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Product cost of revenue.",
        "label": "Product Cost Of Revenue [Member]",
        "terseLabel": "Product cost of revenue [Member]"
       }
      }
     },
     "localname": "ProductCostOfRevenueMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ProductWarrantyPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Product warranty period.",
        "label": "Product Warranty Period",
        "terseLabel": "Product Warranty Period"
       }
      }
     },
     "localname": "ProductWarrantyPeriod",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_RepurchaseProgramMarch2020Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Repurchase Program March 2020",
        "label": "Repurchase Program March 2020 [Member]",
        "terseLabel": "Repurchase Program March 2020 [Member]"
       }
      }
     },
     "localname": "RepurchaseProgramMarch2020Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_RepurchaseProgramMarch2022Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Repurchase Program March 2022",
        "label": "Repurchase Program March 2022 [Member]",
        "terseLabel": "Repurchase Program March 2022"
       }
      }
     },
     "localname": "RepurchaseProgramMarch2022Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_RepurchaseProgramOctober2018Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Repurchase Program October 2018 [Member]",
        "label": "Repurchase Program October 2018 [Member]",
        "terseLabel": "Repurchase Program October 2018 [Member]"
       }
      }
     },
     "localname": "RepurchaseProgramOctober2018Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_RetirementAllowance": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Retirement allowance Japan.",
        "label": "Retirement Allowance",
        "terseLabel": "Foreign retirement obligations"
       }
      }
     },
     "localname": "RetirementAllowance",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_RevenuePaymentTerms": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue, Payment Terms",
        "label": "Revenue, Payment Terms",
        "terseLabel": "Revenue, payment terms"
       }
      }
     },
     "localname": "RevenuePaymentTerms",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "cgnx_SACSiriusAdvancedCyberneticsGmbHMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "SAC Sirius Advanced Cybernetics GmbH",
        "label": "SAC Sirius Advanced Cybernetics GmbH [Member]",
        "terseLabel": "SAC Sirius Advanced Cybernetics GmbH"
       }
      }
     },
     "localname": "SACSiriusAdvancedCyberneticsGmbHMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_SellingGeneralAndAdministrativeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Selling, general, and administrative.",
        "label": "Selling General And Administrative [Member]",
        "terseLabel": "Selling, general, and administrative [Member]"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value.",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value",
        "terseLabel": "Exercisable, aggregate intrinsic value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share based compensation arrangement by share based payment award options vested fair value.",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value",
        "terseLabel": "Total fair values of stock options vested"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Shares based compensation arrangement by shares based payment award options exercised intrinsic value.",
        "label": "Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercised Intrinsic Value",
        "terseLabel": "Total intrinsic values of stock options exercised"
       }
      }
     },
     "localname": "SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_SouthboroughMassachusettsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Southborough, Massachusetts",
        "label": "Southborough, Massachusetts [Member]",
        "terseLabel": "Southborough, Massachusetts"
       }
      }
     },
     "localname": "SouthboroughMassachusettsMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_SovereignBondsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sovereign bonds fair value disclosure.",
        "label": "Sovereign Bonds Fair Value Disclosure",
        "terseLabel": "Sovereign bonds"
       }
      }
     },
     "localname": "SovereignBondsFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_StandardProductandServicesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Standard Product and Services [Member]",
        "label": "Standard Product and Services [Member]",
        "terseLabel": "Standard products and services"
       }
      }
     },
     "localname": "StandardProductandServicesMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_StateResearchAndExperimentationMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "State research and experimentation.",
        "label": "State Research And Experimentation [Member]",
        "terseLabel": "State Research And Experimentation [Member]"
       }
      }
     },
     "localname": "StateResearchAndExperimentationMember",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock Repurchased During Period, Shares Not Yet Settled",
        "label": "Stock Repurchased During Period, Shares Not Yet Settled",
        "terseLabel": "Repurchase of common stock, not yet settled (in shares)"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodSharesNotYetSettled",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "cgnx_SualabCo.Ltd.Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sualab Co., Ltd. [Member]",
        "label": "Sualab Co., Ltd. [Member]",
        "terseLabel": "Sualab Co., Ltd. [Member]"
       }
      }
     },
     "localname": "SualabCo.Ltd.Member",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "cgnx_TreasuryBillsFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Treasury bills fair value disclosure.",
        "label": "Treasury Bills Fair Value Disclosure",
        "terseLabel": "Treasury bills"
       }
      }
     },
     "localname": "TreasuryBillsFairValueDisclosure",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_UnrecognizedTaxBenefitsGross": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrecognized Tax Benefits, Gross",
        "label": "Unrecognized Tax Benefits, Gross",
        "terseLabel": "Unrecognized Tax Benefits, Gross"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsGross",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets as a result of net operating loss carryforward, a similar tax loss, or a tax credit carryforward.",
        "label": "Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets",
        "terseLabel": "Unrecognized tax benefit shown as a reduction to noncurrent deferred tax assets"
       }
      }
     },
     "localname": "Unrecognizedtaxbenefitshownasareductiontononcurrentdeferredtaxassets",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "cgnx_VoteEntitledForEachCommonShareOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Vote entitled for each common share outstanding.",
        "label": "Vote Entitled For Each Common Share Outstanding",
        "terseLabel": "Vote entitled for each common share outstanding"
       }
      }
     },
     "localname": "VoteEntitledForEachCommonShareOutstanding",
     "nsuri": "http://cognex.com/20221231",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "integerItemType"
    },
    "country_KP": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF",
        "terseLabel": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF"
       }
      }
     },
     "localname": "KP",
     "nsuri": "http://xbrl.sec.gov/country/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "UNITED STATES",
        "terseLabel": "United States [Member]"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_AllCurrenciesDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Currencies [Domain]",
        "terseLabel": "All Currencies [Domain]"
       }
      }
     },
     "localname": "AllCurrenciesDomain",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_CAD": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Canada, Dollars",
        "terseLabel": "Canadian Dollar [Member]"
       }
      }
     },
     "localname": "CAD",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_CHF": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Switzerland, Francs",
        "terseLabel": "Switzerland, Francs"
       }
      }
     },
     "localname": "CHF",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_CNY": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "China, Yuan Renminbi",
        "terseLabel": "China, Yuan Renminbi"
       }
      }
     },
     "localname": "CNY",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_EUR": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Euro Member Countries, Euro",
        "terseLabel": "Euro [Member]"
       }
      }
     },
     "localname": "EUR",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_GBP": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "United Kingdom, Pounds",
        "terseLabel": "British Pound [Member]"
       }
      }
     },
     "localname": "GBP",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_HUF": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hungary, Forint",
        "terseLabel": "Hungarian Forint [Member]"
       }
      }
     },
     "localname": "HUF",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_JPY": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Japan, Yen",
        "terseLabel": "Japanese Yen [Member]"
       }
      }
     },
     "localname": "JPY",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "currency_MXN": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Mexico, Pesos",
        "terseLabel": "Mexican Peso [Member]"
       }
      }
     },
     "localname": "MXN",
     "nsuri": "http://xbrl.sec.gov/currency/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag",
        "terseLabel": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r810",
      "r811",
      "r812"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm ID",
        "terseLabel": "Auditor Firm ID"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r810",
      "r811",
      "r812"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location",
        "terseLabel": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r810",
      "r811",
      "r812"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name",
        "terseLabel": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code",
        "terseLabel": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]",
        "terseLabel": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date",
        "terseLabel": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r810",
      "r811",
      "r812"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report",
        "terseLabel": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.",
        "label": "Document Fiscal Period Focus",
        "terseLabel": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.",
        "label": "Document Fiscal Year Focus",
        "terseLabel": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.",
        "label": "Document Period End Date",
        "terseLabel": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r813"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report",
        "terseLabel": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.",
        "label": "Document Type",
        "terseLabel": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address, Address Line One",
        "terseLabel": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town",
        "terseLabel": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code",
        "terseLabel": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province",
        "terseLabel": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key",
        "terseLabel": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.",
        "label": "Entity Common Stock, Shares Outstanding",
        "terseLabel": "Entity Common Stock, Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Current Reporting Status",
        "terseLabel": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company",
        "terseLabel": "Entity Small Business"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.",
        "label": "Entity File Number",
        "terseLabel": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Filer Category",
        "terseLabel": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation, State or Country Code",
        "terseLabel": "Entity Incorporation, State or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r814"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).",
        "label": "Entity Interactive Data Current",
        "terseLabel": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float",
        "terseLabel": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name",
        "terseLabel": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company",
        "terseLabel": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business",
        "terseLabel": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number",
        "terseLabel": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers",
        "terseLabel": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r815"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well-known Seasoned Issuer",
        "terseLabel": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_IcfrAuditorAttestationFlag": {
     "auth_ref": [
      "r810",
      "r811",
      "r812"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag",
        "terseLabel": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "localname": "IcfrAuditorAttestationFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number",
        "terseLabel": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r807"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security",
        "terseLabel": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r809"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name",
        "terseLabel": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol",
        "terseLabel": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "srt_AmericasMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Continents of North and South America.",
        "label": "Americas [Member]",
        "terseLabel": "Americas [Member]"
       }
      }
     },
     "localname": "AmericasMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_CurrencyAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by currency.",
        "label": "Currency [Axis]",
        "terseLabel": "Currency [Axis]"
       }
      }
     },
     "localname": "CurrencyAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_EuropeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Continent of Europe.",
        "label": "Europe [Member]",
        "terseLabel": "Europe [Member]",
        "verboseLabel": "Europe [Member]"
       }
      }
     },
     "localname": "EuropeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r361",
      "r789",
      "r877",
      "r915"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name or description of a single external customer or a group of external customers.",
        "label": "Customer [Axis]",
        "terseLabel": "Customer [Axis]"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r447",
      "r448",
      "r449",
      "r450",
      "r511",
      "r695",
      "r718",
      "r749",
      "r750",
      "r786",
      "r799",
      "r805",
      "r875",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Upper limit of the provided range.",
        "label": "Maximum [Member]",
        "terseLabel": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "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"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r447",
      "r448",
      "r449",
      "r450",
      "r511",
      "r695",
      "r718",
      "r749",
      "r750",
      "r786",
      "r799",
      "r805",
      "r875",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lower limit of the provided range.",
        "label": "Minimum [Member]",
        "terseLabel": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "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"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r361",
      "r789",
      "r877",
      "r915"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Single external customer or group of external customers.",
        "label": "Customer [Domain]",
        "terseLabel": "Customer [Domain]"
       }
      }
     },
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ProductOrServiceAxis": {
     "auth_ref": [
      "r357",
      "r701",
      "r787",
      "r803",
      "r870",
      "r871",
      "r877",
      "r914"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by product and service, or group of similar products and similar services.",
        "label": "Product and Service [Axis]",
        "terseLabel": "Product and Service [Axis]"
       }
      }
     },
     "localname": "ProductOrServiceAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ProductsAndServicesDomain": {
     "auth_ref": [
      "r357",
      "r701",
      "r787",
      "r803",
      "r870",
      "r871",
      "r877",
      "r914"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Product or service, or a group of similar products or similar services.",
        "label": "Product and Service [Domain]",
        "terseLabel": "Product and Service [Domain]"
       }
      }
     },
     "localname": "ProductsAndServicesDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r447",
      "r448",
      "r449",
      "r450",
      "r494",
      "r511",
      "r542",
      "r543",
      "r544",
      "r671",
      "r695",
      "r718",
      "r749",
      "r750",
      "r786",
      "r799",
      "r805",
      "r864",
      "r875",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median.",
        "label": "Statistical Measurement [Axis]",
        "terseLabel": "Range [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "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"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r447",
      "r448",
      "r449",
      "r450",
      "r494",
      "r511",
      "r542",
      "r543",
      "r544",
      "r671",
      "r695",
      "r718",
      "r749",
      "r750",
      "r786",
      "r799",
      "r805",
      "r864",
      "r875",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median.",
        "label": "Statistical Measurement [Domain]",
        "terseLabel": "Range [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "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"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock": {
     "auth_ref": [
      "r297",
      "r761"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]",
        "terseLabel": "Schedule II - Valuation and Qualifying Accounts"
       }
      }
     },
     "localname": "ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r358",
      "r359",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r751",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r788",
      "r804",
      "r877"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Geographical area.",
        "label": "Geographical [Domain]",
        "terseLabel": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r358",
      "r359",
      "r733",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r751",
      "r752",
      "r788",
      "r804",
      "r877"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by geographical components.",
        "label": "Geographical [Axis]",
        "terseLabel": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]",
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]"
       }
      }
     },
     "localname": "ValuationAndQualifyingAccountsAbstract",
     "nsuri": "http://fasb.org/srt/2022",
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsDisclosureLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]",
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]"
       }
      }
     },
     "localname": "ValuationAndQualifyingAccountsDisclosureLineItems",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsDisclosureTable": {
     "auth_ref": [
      "r290",
      "r291",
      "r292",
      "r295",
      "r296",
      "r761"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]",
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]"
       }
      }
     },
     "localname": "ValuationAndQualifyingAccountsDisclosureTable",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingChangesAndErrorCorrectionsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Changes and Error Corrections [Abstract]",
        "terseLabel": "Accounting Changes and Error Corrections [Abstract]"
       }
      }
     },
     "localname": "AccountingChangesAndErrorCorrectionsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]",
        "terseLabel": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "auth_ref": [
      "r15"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "terseLabel": "Accrued Expenses"
       }
      }
     },
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpenses"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r14",
      "r802"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accounts Payable, Current",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableMember": {
     "auth_ref": [
      "r734"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold.",
        "label": "Accounts Receivable [Member]",
        "terseLabel": "Accounts Receivable [Member]"
       }
      }
     },
     "localname": "AccountsReceivableMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r363",
      "r364"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "terseLabel": "Accounts receivable, allowance for credit losses of $730 and $776 in 2022 and 2021, respectively"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": {
     "auth_ref": [
      "r54"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Accretion (Amortization) of Discounts and Premiums, Investments",
        "negatedLabel": "Amortization of discounts or premiums on investments"
       }
      }
     },
     "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedBonusesCurrent": {
     "auth_ref": [
      "r17"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": 5.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred 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).",
        "label": "Accrued Bonuses, Current",
        "terseLabel": "Incentive compensation"
       }
      }
     },
     "localname": "AccruedBonusesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "auth_ref": [
      "r1",
      "r214",
      "r224"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.",
        "label": "Accrued Income Taxes, Current",
        "terseLabel": "Accrued income taxes"
       }
      }
     },
     "localname": "AccruedIncomeTaxesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "auth_ref": [
      "r2",
      "r214",
      "r224"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.",
        "label": "Accrued Income Taxes, Noncurrent",
        "terseLabel": "Non-current accrued income taxes"
       }
      }
     },
     "localname": "AccruedIncomeTaxesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r17"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued Liabilities, Current",
        "terseLabel": "Accrued expenses",
        "totalLabel": "Accrued expenses"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail",
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Liabilities, Current [Abstract]",
        "terseLabel": "Constituents of accrued expenses"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccruedLiabilitiesMember": {
     "auth_ref": [
      "r17"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This item represents 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.",
        "label": "Accrued Liabilities [Member]",
        "terseLabel": "Accrued Liabilities [Member]"
       }
      }
     },
     "localname": "AccruedLiabilitiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccruedSalariesCurrent": {
     "auth_ref": [
      "r17",
      "r764"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of 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).",
        "label": "Accrued Salaries, Current",
        "terseLabel": "Salaries and payroll taxes"
       }
      }
     },
     "localname": "AccruedSalariesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedVacationCurrent": {
     "auth_ref": [
      "r17",
      "r138"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": 4.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred 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).",
        "label": "Accrued Vacation, Current",
        "terseLabel": "Vacation"
       }
      }
     },
     "localname": "AccruedVacationCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r106",
      "r246"
     ],
     "calculation": {
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "negatedLabel": "Less: accumulated depreciation"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in accumulated depreciation, depletion and amortization as a result of sale or disposal of property, plant and equipment.",
        "label": "Accumulated Depreciation, Depletion and Amortization, Sale or Disposal of Property, Plant and Equipment",
        "terseLabel": "Reduction of accumulated depreciation due to disposals"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "auth_ref": [
      "r821"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "AOCI, Debt Securities, Available-for-Sale, Adjustment, after Tax",
        "terseLabel": "Net unrealized losses on available-for-sale investments, net of tax"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r263",
      "r266",
      "r267",
      "r268",
      "r623"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Accumulated Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Net of Tax",
        "terseLabel": "Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Accumulated Other Comprehensive Income (Loss) [Line Items]",
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Line Items]"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r27",
      "r29",
      "r30",
      "r254",
      "r714",
      "r723",
      "r726"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "terseLabel": "Accumulated other comprehensive loss, net of tax"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": {
     "auth_ref": [
      "r276",
      "r277",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r641"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about components of accumulated other comprehensive income (loss).",
        "label": "Accumulated Other Comprehensive Income (Loss) [Table]",
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Table]"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r26",
      "r30",
      "r183",
      "r660",
      "r719",
      "r720",
      "r822",
      "r823",
      "r824",
      "r838",
      "r839",
      "r840"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.",
        "label": "AOCI Attributable to Parent [Member]",
        "terseLabel": "Accumulated Other Comprehensive Loss [Member]"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "auth_ref": [
      "r91"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life",
        "terseLabel": "Intangible assets, useful life"
       }
      }
     },
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r6"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.",
        "label": "Additional Paid in Capital, Common Stock",
        "terseLabel": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r551",
      "r552",
      "r553",
      "r838",
      "r839",
      "r840",
      "r895"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.",
        "label": "Additional Paid-in Capital [Member]",
        "terseLabel": "Additional Paid-in Capital [Member]"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax": {
     "auth_ref": [
      "r897",
      "r898"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Current period adjustment resulting from gains and losses on intercompany foreign currency transactions that are of a long-term-investment nature because settlement is not planned or anticipated in the foreseeable future. Resulting from the entities to the transaction being consolidated, combined, or accounted for by the equity method in the reporting entity's financial statements.",
        "label": "Adjustment for Long-Term Intercompany Transactions, Net of Tax",
        "terseLabel": "Losses on currency swaps, net of gains on long-term intercompany loans"
       }
      }
     },
     "localname": "AdjustmentForLongTermIntercompanyTransactionsNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r151",
      "r152",
      "r514"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "auth_ref": [
      "r556"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for advertising cost.",
        "label": "Advertising Cost [Policy Text Block]",
        "terseLabel": "Advertising Costs"
       }
      }
     },
     "localname": "AdvertisingCostsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AdvertisingExpense": {
     "auth_ref": [
      "r557"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Advertising Expense",
        "terseLabel": "Advertising costs"
       }
      }
     },
     "localname": "AdvertisingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r546"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Share-Based Payment Arrangement, Expense",
        "verboseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "auth_ref": [
      "r73",
      "r850"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable.",
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Allowance for Credit Loss"
       }
      }
     },
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r255",
      "r367",
      "r386",
      "r388",
      "r391"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "terseLabel": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r390"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedTerseLabel": "Write-offs, net of recoveries"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r53",
      "r89",
      "r96"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.",
        "label": "Amortization of Intangible Assets",
        "terseLabel": "Amortization of intangible assets"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r325"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Stock options to purchase anti-dilutive common stock"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r61"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of antidilutive security.",
        "label": "Antidilutive Securities [Axis]",
        "terseLabel": "Antidilutive Securities [Axis]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r61"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.",
        "label": "Antidilutive Securities, Name [Domain]",
        "terseLabel": "Antidilutive Securities, Name [Domain]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent": {
     "auth_ref": [
      "r890"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as current.",
        "label": "Asset Acquisition, Contingent Consideration, Liability, Current",
        "terseLabel": "Asset acquisition, contingent consideration, liability, current"
       }
      }
     },
     "localname": "AssetAcquisitionContingentConsiderationLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "auth_ref": [
      "r794",
      "r845"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Asset-Backed Securities [Member]",
        "terseLabel": "Asset-Backed Securities [Member]"
       }
      }
     },
     "localname": "AssetBackedSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AssetImpairmentCharges": {
     "auth_ref": [
      "r53",
      "r103"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.",
        "label": "Asset Impairment Charges",
        "terseLabel": "Intangible asset impairment charges"
       }
      }
     },
     "localname": "AssetImpairmentCharges",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r213",
      "r223",
      "r250",
      "r285",
      "r344",
      "r348",
      "r353",
      "r382",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r601",
      "r603",
      "r625",
      "r802",
      "r873",
      "r874",
      "r903"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "ASSETS"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r240",
      "r258",
      "r285",
      "r382",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r601",
      "r603",
      "r625",
      "r802",
      "r873",
      "r874",
      "r903"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets, Current",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Current [Abstract]",
        "terseLabel": "Current assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsFairValueDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Fair Value Disclosure [Abstract]",
        "terseLabel": "Assets:"
       }
      }
     },
     "localname": "AssetsFairValueDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "auth_ref": [
      "r77"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax",
        "terseLabel": "Gross Unrealized Gains"
       }
      }
     },
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "auth_ref": [
      "r78"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax",
        "negatedTerseLabel": "Gross Unrealized Losses"
       }
      }
     },
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "auth_ref": [
      "r372",
      "r396"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost",
        "totalLabel": "Amortized Cost"
       }
      }
     },
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "auth_ref": [
      "r79",
      "r374",
      "r712"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "terseLabel": "Less than 1 Year"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "auth_ref": [
      "r76",
      "r371",
      "r396",
      "r708"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "order": 3.0,
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).",
        "label": "Debt Securities, Available-for-Sale",
        "terseLabel": "Fair Value, Total",
        "totalLabel": "Fair Value, Total"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent": {
     "auth_ref": [
      "r75",
      "r396"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current.",
        "label": "Debt Securities, Available-for-Sale, Current",
        "terseLabel": "Current investments, amortized cost of $223,545 and $137,124 in 2022 and 2021, respectively, allowance for credit losses of $0 in 2022 and 2021",
        "verboseLabel": "Debt securities, available-for-sale, current"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent": {
     "auth_ref": [
      "r75",
      "r244",
      "r396"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_LongTermInvestments",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent.",
        "label": "Debt Securities, Available-for-Sale, Noncurrent",
        "terseLabel": "Long-term investments"
       }
      }
     },
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r517",
      "r518",
      "r519",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location on balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Axis]",
        "terseLabel": "Balance Sheet Location [Axis]"
       }
      }
     },
     "localname": "BalanceSheetLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "auth_ref": [
      "r191",
      "r194"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Domain]",
        "terseLabel": "Balance Sheet Location [Domain]"
       }
      }
     },
     "localname": "BalanceSheetLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BuildingImprovementsMember": {
     "auth_ref": [
      "r105"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Addition, improvement, or renovation to a facility held for productive use including, but not limited to, office, production, storage and distribution facilities.",
        "label": "Building Improvements [Member]",
        "terseLabel": "Building Improvements [Member]"
       }
      }
     },
     "localname": "BuildingImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BuildingMember": {
     "auth_ref": [
      "r105"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities.",
        "label": "Building [Member]",
        "terseLabel": "Building [Member]"
       }
      }
     },
     "localname": "BuildingMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r596",
      "r797",
      "r798"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.",
        "label": "Business Acquisition, Acquiree [Domain]",
        "terseLabel": "Business Acquisition, Acquiree [Domain]"
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r166",
      "r167",
      "r596",
      "r797",
      "r798"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]",
        "terseLabel": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Business Acquisition [Line Items]",
        "terseLabel": "Business Acquisition [Line Items]"
       }
      }
     },
     "localname": "BusinessAcquisitionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r174",
      "r175",
      "r177"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.",
        "label": "Business Combination, Consideration Transferred",
        "terseLabel": "Purchase price"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferred1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "auth_ref": [
      "r600",
      "r827"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "terseLabel": "Revaluation of contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "auth_ref": [
      "r173",
      "r176",
      "r599"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.",
        "label": "Business Combination, Contingent Consideration, Liability",
        "terseLabel": "Contingent consideration liabilities"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r178",
      "r597"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).",
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Business Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "auth_ref": [
      "r169"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill",
        "terseLabel": "Intangible assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "auth_ref": [
      "r168",
      "r169"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles",
        "terseLabel": "Finite-lived intangible assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combinations [Abstract]",
        "terseLabel": "Business Combinations [Abstract]"
       }
      }
     },
     "localname": "BusinessCombinationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r165"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Combinations Policy [Policy Text Block]",
        "terseLabel": "Business Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CapitalizedContractCostGross": {
     "auth_ref": [
      "r851"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.",
        "label": "Capitalized Contract Cost, Gross",
        "terseLabel": "Capitalized Contract Cost, Gross"
       }
      }
     },
     "localname": "CapitalizedContractCostGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionNarrativesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Cash": {
     "auth_ref": [
      "r728",
      "r729",
      "r802",
      "r817"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash",
        "terseLabel": "Cash"
       }
      }
     },
     "localname": "Cash",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents [Abstract]",
        "terseLabel": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r55",
      "r243",
      "r762"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "terseLabel": "Cash and cash equivalents",
        "totalLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r56"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "terseLabel": "Cash, Cash Equivalents, and Investments"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r50",
      "r55",
      "r59"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "periodEndLabel": "Cash and cash equivalents at end of year",
        "periodStartLabel": "Cash and cash equivalents at beginning of year"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r50",
      "r210"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "Net change in cash and cash equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CatastrophicEventDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Catastrophic event, for example, but not limited to, earthquake, windstorm, fire or explosion.",
        "label": "Catastrophic Event [Domain]",
        "terseLabel": "Catastrophic Event [Domain]"
       }
      }
     },
     "localname": "CatastrophicEventDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfStockLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Class of Stock [Line Items]",
        "terseLabel": "Class of Stock [Line Items]"
       }
      }
     },
     "localname": "ClassOfStockLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r20",
      "r218",
      "r229"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "Commitments and Contingencies",
        "terseLabel": "Commitments and contingencies (Note 11)"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]",
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r117",
      "r445",
      "r446",
      "r735",
      "r872"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "terseLabel": "Commitments and Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommitmentsAndContingenciesPolicyTextBlock": {
     "auth_ref": [
      "r122",
      "r736"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies.",
        "label": "Commitments and Contingencies, Policy [Policy Text Block]",
        "terseLabel": "Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockDividendsPerShareCashPaid": {
     "auth_ref": [
      "r136"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate dividends paid during the period for each share of common stock outstanding.",
        "label": "Common Stock, Dividends, Per Share, Cash Paid",
        "terseLabel": "Cash dividends per common share (in dollars per share)"
       }
      }
     },
     "localname": "CommonStockDividendsPerShareCashPaid",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockDividendsPerShareDeclared": {
     "auth_ref": [
      "r136"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding.",
        "label": "Common Stock, Dividends, Per Share, Declared",
        "terseLabel": "Cash dividend declared per common share"
       }
      }
     },
     "localname": "CommonStockDividendsPerShareDeclared",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r838",
      "r839",
      "r895"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]",
        "terseLabel": "Common Stock [Member]"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r5"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common Stock, Par or Stated Value Per Share",
        "terseLabel": "Common stock par value, in dollars per share"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r5"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
        "label": "Common Stock, Shares Authorized",
        "terseLabel": "Common stock, shares authorized (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r5"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.",
        "label": "Common Stock, Shares, Issued",
        "periodEndLabel": "Balance, shares (in shares)",
        "periodStartLabel": "Beginning Balance, shares (in shares)",
        "terseLabel": "Common stock, shares issued (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r5",
      "r129"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common Stock, Shares, Outstanding",
        "terseLabel": "Common stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValueOutstanding": {
     "auth_ref": [
      "r5"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of all classes of common stock held by shareholders. May be all or portion of the number of common shares authorized. These shares exclude common shares repurchased by the entity and held as treasury shares.",
        "label": "Common Stock, Value, Outstanding",
        "terseLabel": "Common stock, $0.002 par value \u2013 Authorized: 300,000 shares in 2022 and 2021, respectively, issued and outstanding: 172,631 and 175,481 shares in 2022 and 2021, respectively"
       }
      }
     },
     "localname": "CommonStockValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement Benefits [Abstract]",
        "terseLabel": "Retirement Benefits [Abstract]"
       }
      }
     },
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r32",
      "r272",
      "r274",
      "r279",
      "r709",
      "r715"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "totalLabel": "Total comprehensive income"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for comprehensive income.",
        "label": "Comprehensive Income, Policy [Policy Text Block]",
        "terseLabel": "Comprehensive Income"
       }
      }
     },
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r66",
      "r67",
      "r207",
      "r208",
      "r361",
      "r734"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.",
        "label": "Concentration Risk Benchmark [Domain]",
        "terseLabel": "Concentration Risk Benchmark [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r66",
      "r67",
      "r207",
      "r208",
      "r361",
      "r727",
      "r734"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]",
        "terseLabel": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r66",
      "r67",
      "r207",
      "r208",
      "r361",
      "r734",
      "r916"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.",
        "label": "Concentration Risk Type [Axis]",
        "terseLabel": "Concentration Risk Type [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Concentration Risk [Line Items]",
        "terseLabel": "Concentration Risk [Line Items]"
       }
      }
     },
     "localname": "ConcentrationRiskLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r66",
      "r67",
      "r207",
      "r208",
      "r361"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.",
        "label": "Concentration Risk, Percentage",
        "verboseLabel": "Maximum percentage of revenue accountability"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTable": {
     "auth_ref": [
      "r64",
      "r66",
      "r67",
      "r68",
      "r207",
      "r209",
      "r734"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.",
        "label": "Concentration Risk [Table]",
        "terseLabel": "Concentration Risk [Table]"
       }
      }
     },
     "localname": "ConcentrationRiskTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r66",
      "r67",
      "r207",
      "r208",
      "r361",
      "r734"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.",
        "label": "Concentration Risk Type [Domain]",
        "terseLabel": "Concentration Risk Type [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r181",
      "r769"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.",
        "label": "Consolidation, Policy [Policy Text Block]",
        "terseLabel": "Basis of Consolidation"
       }
      }
     },
     "localname": "ConsolidationPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractTerminationMember": {
     "auth_ref": [
      "r780",
      "r781",
      "r782",
      "r783"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Termination of a contract associated with exit from or disposal of business activities or restructurings pursuant to a plan.",
        "label": "Contract Termination [Member]",
        "terseLabel": "Contract Termination [Member]"
       }
      }
     },
     "localname": "ContractTerminationMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r876"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "terseLabel": "Contract with Customer, Liability"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r479",
      "r480",
      "r491"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Liability, Current",
        "periodEndLabel": "End balance",
        "periodStartLabel": "Beginning balance",
        "terseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CorporateBondSecuritiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Corporate Bond Securities [Member]",
        "terseLabel": "Corporate Bonds [Member]"
       }
      }
     },
     "localname": "CorporateBondSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "auth_ref": [
      "r38",
      "r701"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.",
        "label": "Cost of Goods and Services Sold",
        "terseLabel": "Cost of revenue"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSold",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSoldOverhead": {
     "auth_ref": [
      "r825"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indirect cost incurred related to good produced and service rendered.",
        "label": "Cost, Overhead",
        "terseLabel": "Cost, Overhead"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSoldOverhead",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy": {
     "auth_ref": [
      "r112",
      "r113",
      "r116"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Costs Associated with Exit or Disposal Activity or Restructuring [Policy Text Block]",
        "terseLabel": "Restructuring Charges"
       }
      }
     },
     "localname": "CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r831",
      "r886",
      "r888"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Current Federal Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r831",
      "r886"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Current Foreign Tax Expense (Benefit)",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "CurrentForeignTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r164",
      "r577",
      "r588",
      "r831"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
        "label": "Current Income Tax Expense (Benefit)",
        "totalLabel": "Current income tax expense (benefit), Total"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "Current:"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r831",
      "r886",
      "r888"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Current State and Local Tax Expense (Benefit)",
        "terseLabel": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r65",
      "r361"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.",
        "label": "Customer Concentration Risk [Member]",
        "verboseLabel": "Revenue from a single customer, percentage"
       }
      }
     },
     "localname": "CustomerConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DamageFromFireExplosionOrOtherHazardMember": {
     "auth_ref": [
      "r868"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Risk of loss from uninsured portions of losses resulting from fire, explosion or other hazard.",
        "label": "Damage from Fire, Explosion or Other Hazard [Member]",
        "terseLabel": "Damage from Fire, Explosion or Other Hazard"
       }
      }
     },
     "localname": "DamageFromFireExplosionOrOtherHazardMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss": {
     "auth_ref": [
      "r373",
      "r396",
      "r402",
      "r403"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss",
        "terseLabel": "Allowance for credit loss"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent": {
     "auth_ref": [
      "r396"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Current",
        "terseLabel": "Current investment, allowance for credit loss"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent": {
     "auth_ref": [
      "r396"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Noncurrent",
        "terseLabel": "Non-current investments, allowance for credit losses"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent": {
     "auth_ref": [
      "r396",
      "r844"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Current",
        "terseLabel": "Current investments, amortized cost"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent": {
     "auth_ref": [
      "r396",
      "r844"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Noncurrent",
        "terseLabel": "Non-current investments, amortized cost"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": {
     "auth_ref": [
      "r379",
      "r400",
      "r778"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for more than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer",
        "terseLabel": "Fair Value, Greater than 12 Months"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "auth_ref": [
      "r379",
      "r400"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "negatedLabel": "Unrealized Losses, Greater than 12 Months"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": {
     "auth_ref": [
      "r379",
      "r400",
      "r778"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months",
        "terseLabel": "Fair Value, Less than 12 months"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "auth_ref": [
      "r379",
      "r400"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "negatedLabel": "Unrealized Losses, Less than 12 months"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedGain": {
     "auth_ref": [
      "r380"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Realized Gain",
        "terseLabel": "Gross realized losses"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleRealizedGain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss": {
     "auth_ref": [
      "r380"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Debt Securities, Available-for-Sale, Realized Loss",
        "terseLabel": "Gross realized gains"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleRealizedLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition": {
     "auth_ref": [
      "r377",
      "r397",
      "r778"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position without allowance for credit loss.",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position",
        "totalLabel": "Fair Value"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": {
     "auth_ref": [
      "r378",
      "r398"
     ],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss",
        "negatedTotalLabel": "Unrealized Losses"
       }
      }
     },
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r831",
      "r887",
      "r888"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r164",
      "r831",
      "r887"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Foreign Income Tax Expense (Benefit)",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "auth_ref": [
      "r561",
      "r562"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.",
        "label": "Deferred Income Tax Assets, Net",
        "terseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r53",
      "r164",
      "r578",
      "r587",
      "r588",
      "r831"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Income Tax Expense (Benefit)",
        "totalLabel": "Deferred income tax expense (benefit), Total"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "Deferred:"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r561",
      "r562"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.",
        "label": "Deferred Income Tax Liabilities, Net",
        "terseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r831",
      "r887",
      "r888"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Deferred State and Local Income Tax Expense (Benefit)",
        "terseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Gross [Abstract]",
        "terseLabel": "Deferred tax assets:"
       }
      }
     },
     "localname": "DeferredTaxAssetsGrossAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "auth_ref": [
      "r162",
      "r885"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 2.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.",
        "label": "Deferred Tax Assets, Inventory",
        "terseLabel": "Inventory and revenue related"
       }
      }
     },
     "localname": "DeferredTaxAssetsInventory",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "auth_ref": [
      "r884"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 2.0,
       "parentTag": "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.",
        "label": "Deferred Tax Assets, Net",
        "totalLabel": "Deferred Tax Assets, Net, Noncurrent"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "auth_ref": [
      "r162",
      "r885"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 8.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic",
        "terseLabel": "Federal and state tax credit carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": {
     "auth_ref": [
      "r162",
      "r885"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 9.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Foreign",
        "terseLabel": "Foreign net operating losses"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign": {
     "auth_ref": [
      "r160",
      "r162",
      "r885"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign tax credit carryforwards.",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, Foreign",
        "terseLabel": "Deferred Tax Assets, Tax Credit Carryforwards, Foreign"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": {
     "auth_ref": [
      "r160",
      "r162",
      "r885"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, Research",
        "terseLabel": "Deferred tax assets, tax credit carryforwards, research"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther": {
     "auth_ref": [
      "r162",
      "r885"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 3.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from compensation and benefits, classified as other.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other",
        "terseLabel": "Bonuses, commissions, and other compensation"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "auth_ref": [
      "r162",
      "r885"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 6.0,
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r574"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "negatedTerseLabel": "Valuation allowance",
        "terseLabel": "Deferred tax assets, valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Gross [Abstract]",
        "terseLabel": "Deferred tax liabilities:"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "auth_ref": [
      "r510"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost for defined contribution plan.",
        "label": "Defined Contribution Plan, Cost",
        "terseLabel": "Company contributions to employee savings plan"
       }
      }
     },
     "localname": "DefinedContributionPlanCostRecognized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay",
        "terseLabel": "Percent of employee contribution"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage employer matches of the employee's percentage contribution matched.",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Match",
        "terseLabel": "Company match percent"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan.",
        "label": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent",
        "terseLabel": "Maximum contribution by company expressed as percentage of employee pre-tax salary"
       }
      }
     },
     "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r53",
      "r104"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 17.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.",
        "label": "Depreciation",
        "terseLabel": "Depreciation of property, plant, and equipment"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset": {
     "auth_ref": [
      "r22",
      "r184"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to return cash collateral under master netting arrangements offset against derivative assets.",
        "label": "Derivative Asset, Subject to Master Netting Arrangement, Collateral, Obligation to Return Cash, Offset Against Derivative Asset",
        "negatedTerseLabel": "Derivative Asset gross amount offset"
       }
      }
     },
     "localname": "DerivativeAssetCollateralObligationToReturnCashOffset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetNotionalAmount": {
     "auth_ref": [
      "r891",
      "r892",
      "r893"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Nominal or face amount used to calculate payments on the derivative asset.",
        "label": "Derivative Asset, Notional Amount",
        "terseLabel": "Derivative Asset, Notional Amount"
       }
      }
     },
     "localname": "DerivativeAssetNotionalAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration": {
     "auth_ref": [
      "r605"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes derivative asset.",
        "label": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]"
       }
      }
     },
     "localname": "DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_DerivativeAssets": {
     "auth_ref": [
      "r260",
      "r262",
      "r624",
      "r768"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.",
        "label": "Derivative Asset",
        "terseLabel": "Net amount of assets presented",
        "totalLabel": "Net amount of assets presented"
       }
      }
     },
     "localname": "DerivativeAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeAsset": {
     "auth_ref": [
      "r24",
      "r193",
      "r211",
      "r259",
      "r768"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Asset, Subject to Master Netting Arrangement, before Offset",
        "terseLabel": "Derivative Asset, Fair Value, Gross Asset"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeFairValueOfDerivativeLiability": {
     "auth_ref": [
      "r24",
      "r193",
      "r211",
      "r259",
      "r768"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Liability, Subject to Master Netting Arrangement, before Offset",
        "terseLabel": "Derivative Liability, Fair Value, Gross Liability"
       }
      }
     },
     "localname": "DerivativeFairValueOfDerivativeLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "auth_ref": [
      "r894"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.",
        "label": "Derivative, Gain (Loss) on Derivative, Net",
        "terseLabel": "Gains (losses) recognized in net income"
       }
      }
     },
     "localname": "DerivativeGainLossOnDerivativeNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]",
        "terseLabel": "Derivative Instruments and Hedging Activities Disclosure [Abstract]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r203",
      "r607"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]",
        "terseLabel": "Derivative Instruments"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstruments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "auth_ref": [
      "r189",
      "r192",
      "r196",
      "r197",
      "r201",
      "r202",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Instruments, Gain (Loss) [Table]",
        "terseLabel": "Derivative Instruments, Gain (Loss) [Table]"
       }
      }
     },
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsGainLossLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Derivative Instruments, Gain (Loss) [Line Items]",
        "terseLabel": "Derivative Instruments, Gain (Loss) [Line Items]"
       }
      }
     },
     "localname": "DerivativeInstrumentsGainLossLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeLiabilities": {
     "auth_ref": [
      "r260",
      "r262",
      "r624",
      "r768"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Liability",
        "terseLabel": "Net amount of liabilities presented",
        "totalLabel": "Net amount of liabilities presented"
       }
      }
     },
     "localname": "DerivativeLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset": {
     "auth_ref": [
      "r22",
      "r184"
     ],
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of right to receive cash collateral under master netting arrangements offset against derivative liabilities.",
        "label": "Derivative Liability, Subject to Master Netting Arrangement, Collateral, Right to Reclaim Cash Offset",
        "negatedTerseLabel": "Derivative liability gross amount offset"
       }
      }
     },
     "localname": "DerivativeLiabilityCollateralRightToReclaimCashOffset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration": {
     "auth_ref": [
      "r605"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes derivative liability.",
        "label": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]"
       }
      }
     },
     "localname": "DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_DerivativeLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Derivative [Line Items]",
        "terseLabel": "Derivative [Line Items]"
       }
      }
     },
     "localname": "DerivativeLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeTable": {
     "auth_ref": [
      "r185",
      "r187",
      "r188",
      "r189",
      "r190",
      "r195",
      "r196",
      "r198",
      "r200",
      "r202",
      "r607"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule that describes and identifies a derivative or group of derivatives on a disaggregated basis, such as for individual instruments, or small groups of similar instruments. May include a combination of the type of instrument, risks being hedged, notional amount, hedge designation, related hedged item, inception date, maturity date, or other relevant item.",
        "label": "Derivative [Table]",
        "terseLabel": "Derivative [Table]"
       }
      }
     },
     "localname": "DerivativeTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativesFairValueLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Derivatives, Fair Value [Line Items]",
        "terseLabel": "Derivatives, Fair Value [Line Items]"
       }
      }
     },
     "localname": "DerivativesFairValueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativesPolicyTextBlock": {
     "auth_ref": [
      "r185",
      "r187",
      "r189",
      "r190",
      "r199",
      "r289"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities.",
        "label": "Derivatives, Policy [Policy Text Block]",
        "terseLabel": "Derivative Instruments"
       }
      }
     },
     "localname": "DerivativesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "auth_ref": [
      "r172"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property.",
        "label": "Developed Technology Rights [Member]",
        "terseLabel": "Completed Technologies [Member]"
       }
      }
     },
     "localname": "DevelopedTechnologyRightsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Disaggregation of Revenue [Line Items]",
        "terseLabel": "Disaggregation of Revenue [Line Items]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "auth_ref": [
      "r490",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Disaggregation of Revenue [Table]",
        "terseLabel": "Disaggregation of Revenue [Table]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r877"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "terseLabel": "Disaggregation of Revenue"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r516",
      "r547",
      "r548",
      "r550",
      "r555",
      "r800"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]",
        "terseLabel": "Disclosure of Compensation Related Costs, Share-based Payments [Abstract]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DistributionRightsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Legal rights, generally of a limited duration, to distribute a product or products, often within specific geographic areas or supply channels.",
        "label": "Distribution Rights [Member]",
        "terseLabel": "Distribution Networks [Member]",
        "verboseLabel": "Distribution Rights [Member]"
       }
      }
     },
     "localname": "DistributionRightsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DividendsCommonStockCash": {
     "auth_ref": [
      "r136"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.",
        "label": "Dividends, Common Stock, Cash",
        "negatedTerseLabel": "Payment of dividends ($0.265 per common share)"
       }
      }
     },
     "localname": "DividendsCommonStockCash",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DividendsPayableAmountPerShare": {
     "auth_ref": [
      "r58"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The per share amount of a dividend declared, but not paid, as of the financial reporting date.",
        "label": "Dividends Payable, Amount Per Share",
        "terseLabel": "Dividends Payable, Amount Per Share"
       }
      }
     },
     "localname": "DividendsPayableAmountPerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_DividendsPayableDateDeclaredDayMonthAndYear": {
     "auth_ref": [
      "r58"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Date the dividend to be paid was declared, in YYYY-MM-DD format.",
        "label": "Dividends Payable, Date Declared",
        "terseLabel": "Dividends Payable, Date Declared"
       }
      }
     },
     "localname": "DividendsPayableDateDeclaredDayMonthAndYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "dateItemType"
    },
    "us-gaap_DividendsPayableDateOfRecordDayMonthAndYear": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Date the holder must own the stock to be entitled to the dividend, in YYYY-MM-DD format.",
        "label": "Dividends Payable, Date of Record",
        "terseLabel": "Dividends Payable, Date of Record"
       }
      }
     },
     "localname": "DividendsPayableDateOfRecordDayMonthAndYear",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "dateItemType"
    },
    "us-gaap_DomesticCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.",
        "label": "Domestic Tax Authority [Member]",
        "terseLabel": "Domestic Tax Authority [Member]"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]",
        "terseLabel": "Earnings Per Share [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r280",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r318",
      "r320",
      "r322",
      "r323",
      "r324",
      "r328",
      "r611",
      "r612",
      "r710",
      "r716",
      "r775"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Earnings Per Share, Basic",
        "terseLabel": "Net income (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareBasicAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Basic [Abstract]",
        "terseLabel": "Net Income per weighted-average common and common-equivalent share:"
       }
      }
     },
     "localname": "EarningsPerShareBasicAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r280",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r320",
      "r322",
      "r323",
      "r324",
      "r328",
      "r611",
      "r612",
      "r710",
      "r716",
      "r775"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.",
        "label": "Earnings Per Share, Diluted",
        "terseLabel": "Net income (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDilutedAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Diluted [Abstract]",
        "terseLabel": "Diluted earnings per weighted-average common and common-equivalent share (1):"
       }
      }
     },
     "localname": "EarningsPerShareDilutedAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r61",
      "r63"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.",
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "terseLabel": "Net Income Per Share"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r325",
      "r326",
      "r327",
      "r329"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings Per Share [Text Block]",
        "terseLabel": "Weighted Average Shares"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageShares"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r634"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. 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.",
        "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations",
        "terseLabel": "Effect of foreign exchange rate changes on cash and cash equivalents"
       }
      }
     },
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r564"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "totalLabel": "Income tax expense"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r287",
      "r564",
      "r590"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "terseLabel": "Income tax expense at U.S. federal statutory corporate tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent",
        "negatedTerseLabel": "Discrete tax benefit for release of valuation allowance"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent",
        "negatedTerseLabel": "Foreign tax rate differential",
        "terseLabel": "Foreign tax rate differential"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationGiltiAmount": {
     "auth_ref": [
      "r883"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount 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).",
        "label": "Effective Income Tax Rate Reconciliation, GILTI, Amount",
        "terseLabel": "Decrease in tax expense, impact on GILTI"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationGiltiAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent": {
     "auth_ref": [
      "r883"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Effective Income Tax Rate Reconciliation, GILTI, Percent",
        "negatedTerseLabel": "Discrete tax benefit related to GILTI adjustments"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationGiltiPercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount": {
     "auth_ref": [
      "r882",
      "r883"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount 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.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Amount",
        "terseLabel": "Reduction of income tax expense for adoption of ASU 2016-09"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "auth_ref": [
      "r882",
      "r883"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 12.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent",
        "negatedTerseLabel": "Discrete tax benefit related to employee stock options"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent",
        "terseLabel": "State income taxes, net of federal benefit"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 13.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Percent",
        "negatedTerseLabel": "Tax credit"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCredits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 11.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, Percent",
        "negatedTerseLabel": "Discrete tax expense related to tax return filings"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlements",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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 foreign income tax settlement.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Percent",
        "terseLabel": "Discrete tax expense related to international tax reserves"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlementsForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal": {
     "auth_ref": [
      "r883",
      "r889"
     ],
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, State and Local, Percent",
        "negatedTerseLabel": "Discrete tax benefit related to a rate revaluation on state tax assets"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r549"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "terseLabel": "Recognition period for unrecognized compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "auth_ref": [
      "r881"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "terseLabel": "Total unrecognized compensation expense related to non-vested stock options"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "auth_ref": [
      "r546"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "terseLabel": "Income tax benefit recognized related to stock-based compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.",
        "label": "Share-Based Payment Arrangement, Option [Member]",
        "terseLabel": "Employee Stock Option [Member]",
        "verboseLabel": "Stock Compensation Plan [Member]"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tangible personal property used to produce goods and services.",
        "label": "Equipment [Member]",
        "verboseLabel": "Manufacturing Test Equipment [Member]"
       }
      }
     },
     "localname": "EquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Abstract]",
        "terseLabel": "Equity [Abstract]"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r129",
      "r237",
      "r276",
      "r277",
      "r278",
      "r298",
      "r299",
      "r300",
      "r304",
      "r312",
      "r314",
      "r332",
      "r383",
      "r478",
      "r551",
      "r552",
      "r553",
      "r580",
      "r581",
      "r610",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r641",
      "r660",
      "r719",
      "r720",
      "r721"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.",
        "label": "Equity Component [Domain]",
        "terseLabel": "Equity Component [Domain]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails",
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "auth_ref": [
      "r616",
      "r617",
      "r621"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "terseLabel": "Fair Value Measurements, Recurring and Nonrecurring [Table]"
       }
      }
     },
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails",
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r460",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r617",
      "r668",
      "r669",
      "r670",
      "r784",
      "r785",
      "r794",
      "r795",
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.",
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]"
       }
      }
     },
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "auth_ref": [
      "r616",
      "r617",
      "r618",
      "r619",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by measurement frequency.",
        "label": "Measurement Frequency [Axis]",
        "terseLabel": "Measurement Frequency [Axis]"
       }
      }
     },
     "localname": "FairValueByMeasurementFrequencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]",
        "terseLabel": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r620"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.",
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r460",
      "r496",
      "r501",
      "r617",
      "r668",
      "r794",
      "r795",
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "terseLabel": "Quoted\u00a0Prices\u00a0in Active Markets for Identical Assets (Level\u00a01)"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r460",
      "r496",
      "r501",
      "r617",
      "r669",
      "r784",
      "r785",
      "r794",
      "r795",
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "terseLabel": "Significant\u00a0Other Observable Inputs (Level\u00a02)"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r460",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r617",
      "r670",
      "r784",
      "r785",
      "r794",
      "r795",
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "terseLabel": "Unobservable Inputs (Level 3)"
       }
      }
     },
     "localname": "FairValueInputsLevel3Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement frequency.",
        "label": "Measurement Frequency [Domain]",
        "terseLabel": "Fair Value, Measurement Frequency [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementFrequencyDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "auth_ref": [
      "r204"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "terseLabel": "Fair value"
       }
      }
     },
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [
      "r460",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r668",
      "r669",
      "r670",
      "r784",
      "r785",
      "r794",
      "r795",
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "terseLabel": "Fair Value, Measurements, Fair Value Hierarchy [Domain]"
       }
      }
     },
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "auth_ref": [
      "r620",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Fair Value, Recurring [Member]",
        "terseLabel": "Fair Value, Measurements, Recurring"
       }
      }
     },
     "localname": "FairValueMeasurementsRecurringMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "auth_ref": [
      "r205",
      "r206"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "terseLabel": "Fair Value Measurements"
       }
      }
     },
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "auth_ref": [
      "r191",
      "r195",
      "r201"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule that discloses 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.",
        "label": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "terseLabel": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]"
       }
      }
     },
     "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FinancialInstrumentAxis": {
     "auth_ref": [
      "r375",
      "r376",
      "r387",
      "r392",
      "r393",
      "r394",
      "r395",
      "r399",
      "r401",
      "r404",
      "r461",
      "r475",
      "r607",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r778",
      "r846",
      "r847",
      "r848",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r922",
      "r923"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of financial instrument.",
        "label": "Financial Instrument [Axis]",
        "terseLabel": "Financial Instrument [Axis]"
       }
      }
     },
     "localname": "FinancialInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "terseLabel": "Finite-Lived Intangible Asset, Useful Life"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r248",
      "r426"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "terseLabel": "Accumulated Amortization",
        "verboseLabel": "Accumulated amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": 6.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": 5.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": 4.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": 3.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r423",
      "r425",
      "r426",
      "r428",
      "r702",
      "r706"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r95",
      "r706"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Gross",
        "terseLabel": "Gross Carrying Value"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r90",
      "r94"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r95",
      "r702"
     ],
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Net Carrying Value"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax departments of governments entitled to levy and collect income taxes from the entity outside the entity's country of domicile.",
        "label": "Foreign Tax Authority [Member]",
        "terseLabel": "Foreign Tax Authority [Member]"
       }
      }
     },
     "localname": "ForeignCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ForeignCurrencyContractAssetFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Foreign Currency Contract, Asset, Fair Value Disclosure",
        "terseLabel": "Economic hedge forward contracts"
       }
      }
     },
     "localname": "ForeignCurrencyContractAssetFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Foreign Currency Contracts, Liability, Fair Value Disclosure",
        "terseLabel": "Economic hedge forward contracts"
       }
      }
     },
     "localname": "ForeignCurrencyContractsLiabilityFairValueDisclosure",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "auth_ref": [
      "r629",
      "r630",
      "r631",
      "r633"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.",
        "label": "Foreign Currency Transaction Gain (Loss), before Tax",
        "terseLabel": "Foreign currency gain (loss)"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "auth_ref": [
      "r643"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "terseLabel": "Foreign Currency"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.",
        "label": "Furniture and Fixtures [Member]",
        "terseLabel": "Furniture and Fixtures [Member]"
       }
      }
     },
     "localname": "FurnitureAndFixturesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "auth_ref": [
      "r828"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Gain (Loss) on Disposition of Assets",
        "negatedTerseLabel": "Loss on disposition of property, plant and equipment",
        "terseLabel": "Loss on disposition of property, plant and equipment"
       }
      }
     },
     "localname": "GainLossOnDispositionOfAssets1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainLossOnSaleOfInvestments": {
     "auth_ref": [
      "r53"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Gain (Loss) on Sale of Investments",
        "negatedLabel": "Realized (gain) loss on sale of investments"
       }
      }
     },
     "localname": "GainLossOnSaleOfInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "auth_ref": [
      "r53"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 16.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.",
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "negatedTerseLabel": "Loss (gain) on disposal of property, plant, and equipment"
       }
      }
     },
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r247",
      "r409",
      "r707",
      "r779",
      "r802",
      "r852",
      "r859"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill",
        "periodEndLabel": "Goodwill, Ending Balance",
        "periodStartLabel": "Goodwill, Beginning Balance",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]",
        "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "auth_ref": [
      "r421",
      "r422",
      "r779"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "auth_ref": [
      "r418",
      "r420",
      "r422",
      "r779"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for goodwill.",
        "label": "Goodwill Disclosure [Text Block]",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "GoodwillDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/Goodwill"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": {
     "auth_ref": [
      "r415"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Foreign Currency Translation Gain (Loss)",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "GoodwillForeignCurrencyTranslationGainLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Goodwill [Line Items]",
        "terseLabel": "Goodwill [Line Items]"
       }
      }
     },
     "localname": "GoodwillLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillOtherIncreaseDecrease": {
     "auth_ref": [
      "r416"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Other Increase (Decrease)",
        "terseLabel": "Goodwill, Other Increase (Decrease)"
       }
      }
     },
     "localname": "GoodwillOtherIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Goodwill [Roll Forward]",
        "terseLabel": "Goodwill [Roll Forward]"
       }
      }
     },
     "localname": "GoodwillRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r37",
      "r285",
      "r344",
      "r347",
      "r352",
      "r355",
      "r382",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r625",
      "r777",
      "r873"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 6.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "Gross Profit",
        "totalLabel": "Gross margin"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GuaranteesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Guarantees [Abstract]",
        "terseLabel": "Guarantees [Abstract]"
       }
      }
     },
     "localname": "GuaranteesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r189",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Axis]",
        "terseLabel": "Hedging Designation [Axis]"
       }
      }
     },
     "localname": "HedgingDesignationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationDomain": {
     "auth_ref": [
      "r189"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Domain]",
        "terseLabel": "Hedging Designation [Domain]"
       }
      }
     },
     "localname": "HedgingDesignationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration": {
     "auth_ref": [
      "r429"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of income or comprehensive income that includes impairment of indefinite-lived intangible asset excluding goodwill.",
        "label": "Impairment, Intangible Asset, Indefinite-Lived (Excluding Goodwill), Statement of Income or Comprehensive Income [Extensible Enumeration]",
        "terseLabel": "Impairment, Intangible Asset, Indefinite-Lived (Excluding Goodwill), Statement of Income or Comprehensive Income [Extensible Enumeration]"
       }
      }
     },
     "localname": "ImpairmentOfIntangibleAssetIndefiniteLivedExcludingGoodwillStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_ImpairmentOfIntangibleAssetsExcludingGoodwill": {
     "auth_ref": [
      "r53",
      "r99"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of an intangible asset (excluding goodwill) to fair value.",
        "label": "Impairment of Intangible Assets (Excluding Goodwill)",
        "terseLabel": "Intangible asset impairment charges"
       }
      }
     },
     "localname": "ImpairmentOfIntangibleAssetsExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill": {
     "auth_ref": [
      "r828",
      "r863"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of impairment loss resulting from write-down of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit to fair value.",
        "label": "Impairment of Intangible Assets, Indefinite-Lived (Excluding Goodwill)",
        "terseLabel": "Intangible asset impairment charges"
       }
      }
     },
     "localname": "ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InProcessResearchAndDevelopmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "In process investigation of new knowledge useful in developing new product or service or new process or technique or improvement to existing product or process, and translation of knowledge into plan or design for new product or process or for improvement to existing product or process.",
        "label": "In Process Research and Development [Member]",
        "terseLabel": "In Process Research and Development [Member]"
       }
      }
     },
     "localname": "InProcessResearchAndDevelopmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "auth_ref": [
      "r286",
      "r589"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic",
        "terseLabel": "Domestic income from continuing operations before taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r34",
      "r212",
      "r219",
      "r231",
      "r344",
      "r347",
      "r352",
      "r355",
      "r711",
      "r777"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "terseLabel": "Income before income tax expense"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r286",
      "r589"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign",
        "terseLabel": "Foreign income from continuing operations before taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]",
        "terseLabel": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r431",
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]",
        "verboseLabel": "Schedule of Employee Service Share-Based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]",
        "verboseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]"
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r156"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]",
        "terseLabel": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority [Domain]",
        "terseLabel": "Income Tax Authority [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "auth_ref": [
      "r156"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name of taxing authority.",
        "label": "Income Tax Authority, Name [Axis]",
        "terseLabel": "Income Tax Authority, Name [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.",
        "label": "Income Tax Authority, Name [Domain]",
        "terseLabel": "Income Tax Authority, Name [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]",
        "terseLabel": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r287",
      "r565",
      "r572",
      "r576",
      "r585",
      "r591",
      "r593",
      "r594",
      "r595"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income Tax Disclosure [Text Block]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r288",
      "r313",
      "r314",
      "r343",
      "r563",
      "r586",
      "r592",
      "r717"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      },
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Income Tax Expense (Benefit)",
        "terseLabel": "Income tax expense on continuing operations",
        "totalLabel": "Income tax expense (benefit), continuing operations, Total"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r275",
      "r559",
      "r560",
      "r572",
      "r573",
      "r575",
      "r579"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Tax, Policy [Policy Text Block]",
        "terseLabel": "Taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r883"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Amount",
        "terseLabel": "Decrease in tax expense, release in valuation allowance"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpense": {
     "auth_ref": [
      "r883"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Amount",
        "terseLabel": "Effective income tax rate reconciliation, nondeductible expense, amount"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges": {
     "auth_ref": [
      "r883"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible restructuring charges.",
        "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Restructuring Charges, Amount",
        "terseLabel": "Decrease in tax expense, restructuring charges"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpenseRestructuringCharges",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationTaxSettlementsForeign": {
     "auth_ref": [
      "r883"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax settlement.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, Foreign, Amount",
        "terseLabel": "Effective income tax rate reconciliation, tax settlement, foreign, amount"
       }
      }
     },
     "localname": "IncomeTaxReconciliationTaxSettlementsForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r57"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
        "label": "Income Taxes Paid, Net",
        "terseLabel": "Income tax paid net"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.",
        "label": "Increase (Decrease) in Accounts Payable",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.",
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 22.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Income Taxes Payable",
        "terseLabel": "Accrued income taxes"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.",
        "label": "Increase (Decrease) in Accrued Liabilities",
        "terseLabel": "Accrued expenses"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": {
     "auth_ref": [
      "r827"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 19.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Contract with Customer, Asset",
        "negatedTerseLabel": "Unbilled revenue"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "auth_ref": [
      "r696",
      "r827"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 21.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "terseLabel": "Deferred revenue and customer deposits"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 18.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Increase (Decrease) in Deferred Income Taxes",
        "negatedLabel": "Change in deferred income taxes"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.",
        "label": "Increase (Decrease) in Inventories",
        "negatedLabel": "Inventories"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other.",
        "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net",
        "negatedLabel": "Other"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingCapitalNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r52"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedTerseLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]"
       }
      }
     },
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r424",
      "r427"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type or class of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.",
        "label": "Indefinite-Lived Intangible Assets [Axis]",
        "terseLabel": "Indefinite-lived Intangible Assets [Axis]"
       }
      }
     },
     "localname": "IndefiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r92",
      "r98"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of indefinite-lived intangible asset (for example, trade names, etc. but not all-inclusive), excluding goodwill. A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of the company.",
        "label": "Indefinite-Lived Intangible Assets, Major Class Name [Domain]",
        "terseLabel": "Indefinite-lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "IndefiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_InsuranceRecoveries": {
     "auth_ref": [
      "r39"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount recovered from insurance. These recoveries reduce costs and losses that are reported as a separate line item under operating expenses.",
        "label": "Insurance Recoveries",
        "terseLabel": "Insurance Recoveries"
       }
      }
     },
     "localname": "InsuranceRecoveries",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r430"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all or part of the information related to intangible assets.",
        "label": "Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Intangible Assets"
       }
      }
     },
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "auth_ref": [
      "r94",
      "r698",
      "r699",
      "r700",
      "r702",
      "r770"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]",
        "terseLabel": "Intangible Assets"
       }
      }
     },
     "localname": "IntangibleAssetsFiniteLivedPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r88",
      "r93"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "terseLabel": "Intangible assets, net"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestReceivable": {
     "auth_ref": [
      "r818"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of interest earned but not received. Also called accrued interest or accrued interest receivable.",
        "label": "Interest Receivable",
        "terseLabel": "Interest Receivable"
       }
      }
     },
     "localname": "InterestReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InternalUseSoftwarePolicy": {
     "auth_ref": [
      "r100",
      "r102"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Internal Use Software, Policy [Policy Text Block]",
        "terseLabel": "Internal-use Software"
       }
      }
     },
     "localname": "InternalUseSoftwarePolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory Disclosure [Abstract]",
        "terseLabel": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r408"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.",
        "label": "Inventory Disclosure [Text Block]",
        "verboseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/Inventories"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "auth_ref": [
      "r87",
      "r765"
     ],
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "order": 3.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "terseLabel": "Finished goods"
       }
      }
     },
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r257",
      "r763",
      "r802"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.",
        "label": "Inventory, Net",
        "terseLabel": "Inventories",
        "totalLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r242",
      "r256",
      "r330",
      "r405",
      "r407",
      "r408",
      "r697",
      "r771"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
        "label": "Inventory, Policy [Policy Text Block]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "auth_ref": [
      "r87",
      "r767"
     ],
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "terseLabel": "Raw materials"
       }
      }
     },
     "localname": "InventoryRawMaterialsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "auth_ref": [
      "r87",
      "r766"
     ],
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Inventory, Work in Process, Net of Reserves",
        "terseLabel": "Work-in-process"
       }
      }
     },
     "localname": "InventoryWorkInProcessNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWriteDown": {
     "auth_ref": [
      "r406"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.",
        "label": "Inventory Write-down",
        "terseLabel": "Inventory Write-down"
       }
      }
     },
     "localname": "InventoryWriteDown",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentIncomeNonoperating": {
     "auth_ref": [
      "r41"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core operations.",
        "label": "Investment Income, Nonoperating",
        "terseLabel": "Investment income"
       }
      }
     },
     "localname": "InvestmentIncomeNonoperating",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentPolicyTextBlock": {
     "auth_ref": [
      "r381",
      "r913"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for investment in financial asset.",
        "label": "Investment, Policy [Policy Text Block]",
        "terseLabel": "Cash, Cash Equivalents, and Investments"
       }
      }
     },
     "localname": "InvestmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments.",
        "label": "Investments Classified by Contractual Maturity Date [Table Text Block]",
        "terseLabel": "Effective Maturity Dates of Available-for-Sale Investments"
       }
      }
     },
     "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]",
        "terseLabel": "Cash, Cash Equivalents, and Investments"
       }
      }
     },
     "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LandMember": {
     "auth_ref": [
      "r878"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Part of earth's surface not covered by water.",
        "label": "Land [Member]",
        "terseLabel": "Land [Member]"
       }
      }
     },
     "localname": "LandMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "auth_ref": [
      "r105"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additions or improvements to assets held under a lease arrangement.",
        "label": "Leasehold Improvements [Member]",
        "verboseLabel": "Leasehold Improvements [Member]"
       }
      }
     },
     "localname": "LeaseholdImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases [Abstract]",
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Table]"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r649"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
        "label": "Lessee, Leases [Policy Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeLeasesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r902"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.",
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Schedule of lease payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r653"
     ],
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseTermOfContract": {
     "auth_ref": [
      "r901"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Lessee, Operating Lease, Term of Contract",
        "terseLabel": "Lessee, Operating Lease, Term of Contract"
       }
      }
     },
     "localname": "LesseeOperatingLeaseTermOfContract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r654"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.",
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesLeases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LessorLeaseDescriptionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Lessor, Lease, Description [Line Items]",
        "terseLabel": "Lessor, Lease, Description [Line Items]"
       }
      }
     },
     "localname": "LessorLeaseDescriptionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LessorLeaseDescriptionTable": {
     "auth_ref": [
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about lessor's leases.",
        "label": "Lessor, Lease, Description [Table]",
        "terseLabel": "Lessor, Lease, Description [Table]"
       }
      }
     },
     "localname": "LessorLeaseDescriptionTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r16",
      "r285",
      "r382",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r602",
      "r603",
      "r604",
      "r625",
      "r776",
      "r873",
      "r903",
      "r904"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r10",
      "r216",
      "r227",
      "r802",
      "r830",
      "r849",
      "r896"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and shareholders' equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "terseLabel": "LIABILITIES AND SHAREHOLDERS\u2019 EQUITY"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r18",
      "r241",
      "r285",
      "r382",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r602",
      "r603",
      "r604",
      "r625",
      "r802",
      "r873",
      "r903",
      "r904"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.",
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Current [Abstract]",
        "terseLabel": "Current liabilities:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesFairValueDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Fair Value Disclosure [Abstract]",
        "terseLabel": "Liabilities:"
       }
      }
     },
     "localname": "LiabilitiesFairValueDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis": {
     "auth_ref": [
      "r232"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of catastrophic event, for example, but not limited to, earthquake, windstorm, fire or explosion.",
        "label": "Catastrophic Event [Axis]",
        "terseLabel": "Catastrophic Event [Axis]"
       }
      }
     },
     "localname": "LiabilityForCatastropheClaimsByCatastrophicEventAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "auth_ref": [
      "r19"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent.",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "terseLabel": "Reserve for income taxes"
       }
      }
     },
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermInvestments": {
     "auth_ref": [
      "r244"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": 3.0,
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of investments that are intended to be held for an extended period of time (longer than one operating cycle).",
        "label": "Long-Term Investments",
        "terseLabel": "Non-current investments, amortized cost of $476,148 and $587,981 in 2022 and 2021, respectively, allowance for credit losses of $0 in 2022 and 2021",
        "totalLabel": "Non-current investments"
       }
      }
     },
     "localname": "LongTermInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossFromCatastrophes": {
     "auth_ref": [
      "r42"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The charge against earnings in the period for the uninsured portion of a loss from a fire, explosion, or natural disaster (hurricane, earthquake).",
        "label": "Loss from Catastrophes",
        "terseLabel": "Loss from Catastrophes"
       }
      }
     },
     "localname": "LossFromCatastrophes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Maximum Remaining Maturity of Foreign Currency Derivatives",
        "terseLabel": "Maturities of forward of contracts"
       }
      }
     },
     "localname": "MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_MoneyMarketFundsAtCarryingValue": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Money Market Funds, at Carrying Value",
        "terseLabel": "Money market instruments"
       }
      }
     },
     "localname": "MoneyMarketFundsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "terseLabel": "Movement in Standard Product Warranty Accrual [Roll Forward]"
       }
      }
     },
     "localname": "MovementInStandardProductWarrantyAccrualRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MovementInValuationAllowancesAndReservesRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]",
        "terseLabel": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]"
       }
      }
     },
     "localname": "MovementInValuationAllowancesAndReservesRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MunicipalBondsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long-term debt securities issued by state, city or local governments or the agencies operated by state, city or local governments.",
        "label": "Municipal Bonds [Member]",
        "terseLabel": "Municipal Bonds [Member]"
       }
      }
     },
     "localname": "MunicipalBondsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r282"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash used in financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]",
        "terseLabel": "Cash flows from financing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r282"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Net cash provided by (used in) investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]",
        "terseLabel": "Cash flows from investing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r50",
      "r51",
      "r54"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Net cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Cash flows from operating activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r35",
      "r54",
      "r220",
      "r230",
      "r239",
      "r270",
      "r273",
      "r278",
      "r285",
      "r303",
      "r307",
      "r308",
      "r309",
      "r310",
      "r313",
      "r314",
      "r321",
      "r344",
      "r347",
      "r352",
      "r355",
      "r382",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r612",
      "r625",
      "r777",
      "r873"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net Income (Loss) Attributable to Parent",
        "terseLabel": "Net income",
        "totalLabel": "Net income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetRentableArea": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net rentable area for properties owned.",
        "label": "Net Rentable Area",
        "terseLabel": "Net Rentable Area"
       }
      }
     },
     "localname": "NetRentableArea",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "areaItemType"
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r238",
      "r301",
      "r302",
      "r305",
      "r306",
      "r315",
      "r316",
      "r317",
      "r369",
      "r370",
      "r384",
      "r385",
      "r582",
      "r583",
      "r584",
      "r609",
      "r613",
      "r614",
      "r615",
      "r626",
      "r627",
      "r628",
      "r644",
      "r645",
      "r659",
      "r661",
      "r703",
      "r704",
      "r705",
      "r722",
      "r723",
      "r724",
      "r725",
      "r726"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "terseLabel": "New Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/NewPronouncements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "New Accounting Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "auth_ref": [
      "r171"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.",
        "label": "Noncompete Agreements [Member]",
        "terseLabel": "Non-compete agreements"
       }
      }
     },
     "localname": "NoncompeteAgreementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NoncurrentAssets": {
     "auth_ref": [
      "r359"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.",
        "label": "Long-Lived Assets",
        "terseLabel": "Long-lived assets"
       }
      }
     },
     "localname": "NoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NondesignatedMember": {
     "auth_ref": [
      "r189"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).",
        "label": "Not Designated as Hedging Instrument [Member]",
        "terseLabel": "Not Designated as Hedging Instrument [Member]"
       }
      }
     },
     "localname": "NondesignatedMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock": {
     "auth_ref": [
      "r141"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the changes in outstanding nonvested restricted stock shares.",
        "label": "Nonvested Restricted Stock Shares Activity [Table Text Block]",
        "terseLabel": "Nonvested Restricted Stock Shares Activity"
       }
      }
     },
     "localname": "NonvestedRestrictedStockSharesActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NumberOfReportableSegments": {
     "auth_ref": [
      "r843"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.",
        "label": "Number of Reportable Segments",
        "terseLabel": "Number of reportable segments"
       }
      }
     },
     "localname": "NumberOfReportableSegments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OffsettingAssetsTableTextBlock": {
     "auth_ref": [
      "r23",
      "r261"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of derivative and other financial assets that are subject to offsetting, including master netting arrangements.",
        "label": "Offsetting Assets [Table Text Block]",
        "terseLabel": "Offsetting Assets"
       }
      }
     },
     "localname": "OffsettingAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OneTimeTerminationBenefitsMember": {
     "auth_ref": [
      "r780",
      "r781",
      "r782",
      "r783"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A lump sum payment to an involuntarily terminated employee in conjunction with exit or disposal activities.",
        "label": "One-time Termination Benefits [Member]",
        "terseLabel": "One-time Termination Benefits [Member]"
       }
      }
     },
     "localname": "OneTimeTerminationBenefitsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r344",
      "r347",
      "r352",
      "r355",
      "r777"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net result for the period of deducting operating expenses from operating revenues.",
        "label": "Operating Income (Loss)",
        "totalLabel": "Operating income"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r900"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease expense. Excludes sublease income.",
        "label": "Operating Lease, Expense",
        "terseLabel": "Operating lease expense"
       }
      }
     },
     "localname": "OperatingLeaseExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseImpairmentLoss": {
     "auth_ref": [
      "r899"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of loss from impairment of right-of-use asset from operating lease.",
        "label": "Operating Lease, Impairment Loss",
        "terseLabel": "Operating lease asset impairment charges"
       }
      }
     },
     "localname": "OperatingLeaseImpairmentLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://cognex.com/role/FairValueMeasurementsAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseIncomeComprehensiveIncomeExtensibleList": {
     "auth_ref": [
      "r655"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of comprehensive income that includes operating lease income.",
        "label": "Operating Lease, Lease Income, Statement of Income or Comprehensive Income [Extensible Enumeration]",
        "terseLabel": "Operating Lease, Lease Income, Statement of Income or Comprehensive Income [Extensible Enumeration]"
       }
      }
     },
     "localname": "OperatingLeaseIncomeComprehensiveIncomeExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_OperatingLeaseLeaseIncome": {
     "auth_ref": [
      "r331",
      "r655",
      "r657"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease income from lease payments and variable lease payments paid and payable to lessor. Includes, but is not limited to, variable lease payments not included in measurement of lease receivable.",
        "label": "Operating Lease, Lease Income",
        "terseLabel": "Operating lease income"
       }
      }
     },
     "localname": "OperatingLeaseLeaseIncome",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r647"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Operating Lease, Liability",
        "terseLabel": "Operating lease, liability"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r647"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Operating Lease, Liability, Current",
        "terseLabel": "Operating lease liabilities"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r647"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Operating Lease, Liability, Noncurrent",
        "terseLabel": "Non-current operating lease liabilities"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r648",
      "r650"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Operating Lease, Payments",
        "terseLabel": "Operating lease payments"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r646"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 8.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating Lease, Right-of-Use Asset",
        "terseLabel": "Operating lease assets"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r652",
      "r801"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "terseLabel": "Operating lease, weighted average discount rate (percent)"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r651",
      "r801"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Operating lease, weighted average remaining lease term (years)"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLeasesOfLessorDisclosureTextBlock": {
     "auth_ref": [
      "r658"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for lessor's operating leases.",
        "label": "Lessor, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "OperatingLeasesOfLessorDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesLeases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r17"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": 6.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "Other Accrued Liabilities, Current",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "OtherAccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r249"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 7.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other Assets, Noncurrent",
        "terseLabel": "Other assets"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r179",
      "r180",
      "r182"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.",
        "label": "Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Net change related to available-for-sale investments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]",
        "terseLabel": "Available-for-sale investments:"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r179",
      "r180",
      "r182"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Net change related to foreign currency translation adjustments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "auth_ref": [
      "r264",
      "r265",
      "r266"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax",
        "verboseLabel": "Net unrealized gain (loss) on available-for-sale investments, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r25"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax",
        "terseLabel": "Foreign currency translation gain (loss)",
        "verboseLabel": "Foreign currency translation adjustments, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "auth_ref": [
      "r25",
      "r28",
      "r632",
      "r640"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax",
        "terseLabel": "Tax benefit of foreign currency translation adjustment"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r179",
      "r180",
      "r182",
      "r271",
      "r274"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Other comprehensive income (loss), net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": {
     "auth_ref": [
      "r27",
      "r31",
      "r86",
      "r269"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax",
        "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"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": {
     "auth_ref": [
      "r264",
      "r266"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax and before adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax",
        "terseLabel": "Net unrealized gain (loss), net of tax of $(5,943), $(2,206), and $981 in 2022, 2021, and 2020, respectively"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "auth_ref": [
      "r28",
      "r265"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax",
        "terseLabel": "Tax effect of unrealized gain (loss) on available-for-sale investments",
        "verboseLabel": "Tax effect of unrealized gain on available-for-sale investments"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent": {
     "auth_ref": [
      "r139",
      "r140"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the liabilities, classified as other, for deferred compensation arrangements payable within one year or the operating cycle, if longer.",
        "label": "Other Deferred Compensation Arrangements, Liability, Current",
        "terseLabel": "Deferred payments related to Sualab Co., Ltd. acquisition"
       }
      }
     },
     "localname": "OtherDeferredCompensationArrangementsLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intangible assets classified as other.",
        "label": "Other Intangible Assets [Member]",
        "terseLabel": "Non-compete Agreements [Member]"
       }
      }
     },
     "localname": "OtherIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherInventoryPurchasedGoods": {
     "auth_ref": [
      "r819"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gross amount of components used by the entity which are bought from another entity rather than produced by the entity.",
        "label": "Other Inventory, Purchased Goods, Gross",
        "terseLabel": "Other Inventory, Purchased Goods, Gross"
       }
      }
     },
     "localname": "OtherInventoryPurchasedGoods",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherLiabilitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities Disclosure [Abstract]"
       }
      }
     },
     "localname": "OtherLiabilitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r19"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.",
        "label": "Other Liabilities, Noncurrent",
        "terseLabel": "Other liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "auth_ref": [
      "r42"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.",
        "label": "Other Nonoperating Income (Expense)",
        "terseLabel": "Other income (expense)"
       }
      }
     },
     "localname": "OtherNonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherRestructuringMember": {
     "auth_ref": [
      "r780",
      "r781",
      "r782",
      "r783"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Restructuring and related activities classified as other.",
        "label": "Other Restructuring [Member]",
        "terseLabel": "Other Restructuring [Member]"
       }
      }
     },
     "localname": "OtherRestructuringMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payables and Accruals [Abstract]",
        "terseLabel": "Payables and Accruals [Abstract]"
       }
      }
     },
     "localname": "PayablesAndAccrualsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "auth_ref": [
      "r49"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.",
        "label": "Payment for Contingent Consideration Liability, Financing Activities",
        "terseLabel": "Payment of contingent consideration"
       }
      }
     },
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForProceedsFromPreviousAcquisition": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net cash inflow or outflow associated with the aggregate amount of adjustment to the purchase price of a previous acquisition.",
        "label": "Payments for (Proceeds from) Previous Acquisition",
        "terseLabel": "Credit to goodwill"
       }
      }
     },
     "localname": "PaymentsForProceedsFromPreviousAcquisition",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "auth_ref": [
      "r48"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow to reacquire common stock during the period.",
        "label": "Payments for Repurchase of Common Stock",
        "negatedLabel": "Repurchase of common stock"
       }
      }
     },
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForRestructuring": {
     "auth_ref": [
      "r434",
      "r826"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash payments made as the result of exit or disposal activities. Excludes payments associated with a discontinued operation or an asset retirement obligation.",
        "label": "Payments for Restructuring",
        "negatedTerseLabel": "Cash payments"
       }
      }
     },
     "localname": "PaymentsForRestructuring",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDividends": {
     "auth_ref": [
      "r48"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.",
        "label": "Payments of Dividends",
        "terseLabel": "Payments of dividends"
       }
      }
     },
     "localname": "PaymentsOfDividends",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "auth_ref": [
      "r48"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.",
        "label": "Payments of Ordinary Dividends, Common Stock",
        "negatedLabel": "Payment of dividends"
       }
      }
     },
     "localname": "PaymentsOfDividendsCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "auth_ref": [
      "r44",
      "r598"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.",
        "label": "Payments to Acquire Businesses, Gross",
        "terseLabel": "Cash paid in purchase price"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r44"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "negatedTerseLabel": "Net payments related to business acquisitions"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireInvestments": {
     "auth_ref": [
      "r46"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the purchase of all investments (debt, security, other) during the period.",
        "label": "Payments to Acquire Investments",
        "negatedLabel": "Purchases of investments"
       }
      }
     },
     "localname": "PaymentsToAcquireInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Purchases of property, plant, and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "auth_ref": [
      "r494",
      "r495",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r509",
      "r510",
      "r512",
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for retirement benefits.",
        "label": "Retirement Benefits [Text Block]",
        "terseLabel": "Employee Savings Plan"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlan"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PerformanceSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement awarded for meeting performance target.",
        "label": "Performance Shares [Member]",
        "terseLabel": "Performance Shares"
       }
      }
     },
     "localname": "PerformanceSharesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r4",
      "r462"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "terseLabel": "Preferred stock par value (in dollars per share)"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
        "label": "Preferred Stock, Shares Authorized",
        "terseLabel": "Authorized shares (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r4",
      "r462"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.",
        "label": "Preferred Stock, Shares Issued",
        "terseLabel": "Preferred stock, shares issued (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.",
        "label": "Preferred Stock, Shares Outstanding",
        "terseLabel": "Preferred stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValueOutstanding": {
     "auth_ref": [
      "r4"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by shareholders, which is net of related treasury stock. May be all or a portion of the number of preferred shares authorized. These shares represent the ownership interest of the preferred shareholders.",
        "label": "Preferred Stock, Value, Outstanding",
        "terseLabel": "Preferred stock, $0.01 par value - Authorized: 400 shares in 2022 and 2021, respectively, no shares issued and outstanding"
       }
      }
     },
     "localname": "PreferredStockValueOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r820"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.",
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": {
     "auth_ref": [
      "r47",
      "r149"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised.",
        "label": "Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised",
        "terseLabel": "Net payments from issuance of common stock under stock plans"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow associated with the sale, maturity and collection of all investments such as debt, security and so forth during the period.",
        "label": "Proceeds from Sale, Maturity and Collection of Investments",
        "terseLabel": "Maturities and sales of investments"
       }
      }
     },
     "localname": "ProceedsFromSaleMaturityAndCollectionsOfInvestments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductLiabilityContingencyLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Product Liability Contingency [Line Items]",
        "terseLabel": "Product Liability Contingency [Line Items]"
       }
      }
     },
     "localname": "ProductLiabilityContingencyLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ProductLiabilityContingencyTable": {
     "auth_ref": [
      "r449",
      "r868",
      "r869",
      "r870"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information and financial data about the reasonably possible loss or the recognized and additional reasonably possible loss from product liability related to an individual product.",
        "label": "Product Liability Contingency [Table]",
        "terseLabel": "Product Liability Contingency [Table]"
       }
      }
     },
     "localname": "ProductLiabilityContingencyTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ProductWarrantyAccrual": {
     "auth_ref": [
      "r123",
      "r124",
      "r217"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Standard and Extended Product Warranty Accrual",
        "periodEndLabel": "Ending Balance",
        "periodStartLabel": "Beginning Balance"
       }
      }
     },
     "localname": "ProductWarrantyAccrual",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualClassifiedCurrent": {
     "auth_ref": [
      "r17",
      "r118",
      "r119"
     ],
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "order": 3.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for 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).",
        "label": "Product Warranty Accrual, Current",
        "terseLabel": "Warranty obligations"
       }
      }
     },
     "localname": "ProductWarrantyAccrualClassifiedCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPayments": {
     "auth_ref": [
      "r120"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Standard and Extended Product Warranty Accrual, Decrease for Payments",
        "negatedLabel": "Fulfillment of warranty obligations"
       }
      }
     },
     "localname": "ProductWarrantyAccrualPayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualWarrantiesIssued": {
     "auth_ref": [
      "r121"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in the standard and extended product warranty accrual from warranties issued.",
        "label": "Standard and Extended Product Warranty Accrual, Increase for Warranties Issued",
        "terseLabel": "Provisions for warranties issued during the period"
       }
      }
     },
     "localname": "ProductWarrantyAccrualWarrantiesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Abstract]",
        "terseLabel": "Property, Plant and Equipment [Abstract]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r107"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Long-Lived Tangible Asset [Axis]",
        "terseLabel": "Property, Plant and Equipment, Type [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r108",
      "r737",
      "r738",
      "r739"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Property, Plant, and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipment"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisposals": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Property, Plant and Equipment, Disposals",
        "terseLabel": "Disposals in period"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisposals",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r105",
      "r245"
     ],
     "calculation": {
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property, Plant and Equipment, Gross",
        "terseLabel": "Property, plant and equipment, gross"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Property, Plant and Equipment [Line Items]",
        "terseLabel": "Property, Plant and Equipment [Line Items]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r107",
      "r228",
      "r713",
      "r802"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property, Plant and Equipment, Net",
        "terseLabel": "Property, plant, and equipment, net",
        "totalLabel": "Property, plant and equipment, net, total"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r107",
      "r737",
      "r738"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "Property, Plant, and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r107"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "terseLabel": "Property, Plant, and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r105"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.",
        "label": "Long-Lived Tangible Asset [Domain]",
        "terseLabel": "Property, Plant and Equipment, Type [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "Property, Plant and Equipment, Useful Life",
        "terseLabel": "Property, Plant and Equipment, Useful Life"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r281",
      "r389"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "terseLabel": "Increases to the allowance for credit losses"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted": {
     "auth_ref": [
      "r3",
      "r215",
      "r225"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Purchase Commitment, Remaining Minimum Amount Committed",
        "terseLabel": "Purchase order outstanding"
       }
      }
     },
     "localname": "PurchaseCommitmentRemainingMinimumAmountCommitted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "terseLabel": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]"
       }
      }
     },
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r153",
      "r233",
      "r911"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.",
        "label": "Research and Development Expense",
        "terseLabel": "Research, development, and engineering expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.",
        "label": "Research and Development Expense [Member]",
        "terseLabel": "Research, development, and engineering expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "auth_ref": [
      "r100",
      "r101",
      "r233"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.",
        "label": "Research, Development, and Computer Software, Policy [Policy Text Block]",
        "terseLabel": "Research and Development"
       }
      }
     },
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchMember": {
     "auth_ref": [
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Research tax credit carryforwards arising from certain qualifying expenditures incurred to develop new products and processes.",
        "label": "Research Tax Credit Carryforward [Member]",
        "terseLabel": "Research Tax Credit Carryforward [Member]"
       }
      }
     },
     "localname": "ResearchMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockMember": {
     "auth_ref": [
      "r61"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Restricted Stock [Member]",
        "terseLabel": "Restricted Stock [Member]"
       }
      }
     },
     "localname": "RestrictedStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "terseLabel": "Restricted Stock Units (RSUs) [Member]"
       }
      }
     },
     "localname": "RestrictedStockUnitsRSUMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Activities [Abstract]"
       }
      }
     },
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r432",
      "r434",
      "r437",
      "r443",
      "r444"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.",
        "label": "Restructuring and Related Activities Disclosure [Text Block]",
        "terseLabel": "Restructuring Charges"
       }
      }
     },
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringCharges"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of positions eliminated during the period as a result of restructuring activities.",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated",
        "terseLabel": "Number of positions eliminated"
       }
      }
     },
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminated",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of the total number of positions eliminated as of the balance sheet date since inception of the restructuring plan(s).",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated, Inception to Date Percent",
        "terseLabel": "Global workforce reduction"
       }
      }
     },
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminatedInceptionToDatePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_RestructuringCharges": {
     "auth_ref": [
      "r53",
      "r438",
      "r440",
      "r865"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 5.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.",
        "label": "Restructuring Charges",
        "terseLabel": "Restructuring charges",
        "verboseLabel": "Restructuring charges"
       }
      }
     },
     "localname": "RestructuringCharges",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "auth_ref": [
      "r433",
      "r434",
      "r440",
      "r441"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of restructuring cost.",
        "label": "Restructuring Type [Axis]",
        "terseLabel": "Restructuring Type [Axis]"
       }
      }
     },
     "localname": "RestructuringCostAndReserveAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringCostAndReserveLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Restructuring Cost and Reserve [Line Items]",
        "terseLabel": "Restructuring Cost and Reserve [Line Items]"
       }
      }
     },
     "localname": "RestructuringCostAndReserveLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringPlanAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by individual restructuring plan.",
        "label": "Restructuring Plan [Axis]",
        "terseLabel": "Restructuring Plan [Axis]"
       }
      }
     },
     "localname": "RestructuringPlanAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringPlanDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the individual restructuring plans.",
        "label": "Restructuring Plan [Domain]",
        "terseLabel": "Restructuring Plan [Domain]"
       }
      }
     },
     "localname": "RestructuringPlanDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringReserve": {
     "auth_ref": [
      "r434",
      "r439"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount (including both current and noncurrent portions of the accrual) as of the balance sheet date pertaining to a specified type of cost associated with exit from or disposal of business activities or restructuring pursuant to a duly authorized plan.",
        "label": "Restructuring Reserve",
        "periodEndLabel": "Balance as of December 31, 2021",
        "periodStartLabel": "Balance as of December 31, 2020"
       }
      }
     },
     "localname": "RestructuringReserve",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringReserveRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Restructuring Reserve [Roll Forward]",
        "terseLabel": "Restructuring Reserve [Roll Forward]"
       }
      }
     },
     "localname": "RestructuringReserveRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RestructuringReserveTranslationAdjustment": {
     "auth_ref": [
      "r866",
      "r867"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the restructuring reserve.",
        "label": "Restructuring Reserve, Foreign Currency Translation Gain (Loss)",
        "terseLabel": "Foreign exchange rate changes"
       }
      }
     },
     "localname": "RestructuringReserveTranslationAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r7",
      "r136",
      "r226",
      "r722",
      "r726",
      "r802"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings (Accumulated Deficit)",
        "terseLabel": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r237",
      "r298",
      "r299",
      "r300",
      "r304",
      "r312",
      "r314",
      "r383",
      "r551",
      "r552",
      "r553",
      "r580",
      "r581",
      "r610",
      "r719",
      "r721"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]",
        "terseLabel": "Retained Earnings [Member]"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueCommissionersIrelandMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government of Ireland.",
        "label": "Revenue Commissioners, Ireland [Member]",
        "terseLabel": "Revenue Commissioners, Ireland [Member]"
       }
      }
     },
     "localname": "RevenueCommissionersIrelandMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]",
        "terseLabel": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "auth_ref": [
      "r341",
      "r342",
      "r346",
      "r350",
      "r351",
      "r357",
      "r358",
      "r361",
      "r489",
      "r490",
      "r701"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "terseLabel": "Revenue",
        "verboseLabel": "Revenue"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r492",
      "r493"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.",
        "label": "Revenue from Contract with Customer [Text Block]",
        "terseLabel": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RevenueRecognition"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRecognitionAndDeferredRevenueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition and Deferred Revenue [Abstract]"
       }
      }
     },
     "localname": "RevenueRecognitionAndDeferredRevenueAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r772",
      "r773"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.",
        "label": "Revenue [Policy Text Block]",
        "terseLabel": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueRecognitionPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]"
       }
      }
     },
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SalesReturnsAndAllowancesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A revision in the estimated reserve needed for product returns and price or other concessions granted to customers.",
        "label": "Sales Returns and Allowances [Member]",
        "terseLabel": "Sales Returns and Allowances [Member]"
       }
      }
     },
     "localname": "SalesReturnsAndAllowancesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [
      "r361",
      "r842"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.",
        "label": "Revenue Benchmark [Member]",
        "verboseLabel": "Total Revenue"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accrued liabilities.",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Constituents of Accrued Expenses"
       }
      }
     },
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "auth_ref": [
      "r61"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities.",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]"
       }
      }
     },
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Debt Securities, Available-for-Sale [Line Items]",
        "terseLabel": "Debt Securities, Available-for-sale [Line Items]"
       }
      }
     },
     "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to fair value.",
        "label": "Schedule of Available-for-Sale Securities Reconciliation [Table Text Block]",
        "terseLabel": "Summary of Available-for-Sale Investments"
       }
      }
     },
     "localname": "ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesTable": {
     "auth_ref": [
      "r80",
      "r81",
      "r82",
      "r83",
      "r84",
      "r85",
      "r221",
      "r222"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of available-for-sale securities which includes, but is not limited to, changes in the cost basis and fair value, fair value and gross unrealized gain (loss), fair values by type of security, contractual maturity and classification, amortized cost basis, contracts to acquire securities to be accounted for as available-for-sale, debt maturities, transfers to trading, change in net unrealized holding gain (loss) net of tax, continuous unrealized loss position fair value, aggregate losses qualitative disclosures, other than temporary impairment (OTTI) losses or other disclosures related to available for sale securities.",
        "label": "Schedule of Available-for-Sale Securities [Table]",
        "terseLabel": "Schedule of Available-for-sale Securities [Table]"
       }
      }
     },
     "localname": "ScheduleOfAvailableForSaleSecuritiesTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "auth_ref": [
      "r166",
      "r167",
      "r596"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsSualabCoLtdNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "terseLabel": "Constituents of Provision for Income Taxes"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r159"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "terseLabel": "Constituents of Deferred Tax Assets"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": {
     "auth_ref": [
      "r192",
      "r196",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Derivative Instruments, Gain (Loss) [Table Text Block]",
        "terseLabel": "Derivative Instruments, Gain (Loss)"
       }
      }
     },
     "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "auth_ref": [
      "r195"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]",
        "terseLabel": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value"
       }
      }
     },
     "localname": "ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r154"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "auth_ref": [
      "r147",
      "r150"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "terseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "auth_ref": [
      "r147"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "terseLabel": "Stock-Based Compensation Expense"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "auth_ref": [
      "r616",
      "r617"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "terseLabel": "Assets and Liabilities Measured at Fair Value on a Recurring Basis"
       }
      }
     },
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r90",
      "r94",
      "r702"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]",
        "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r90",
      "r94"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Amortized Intangible Assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "auth_ref": [
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r421",
      "r779"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.",
        "label": "Schedule of Goodwill [Table]",
        "terseLabel": "Schedule of Goodwill [Table]"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r779",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r862"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.",
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Changes in the Carrying Value of Goodwill"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/GoodwillTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r0",
      "r11",
      "r12",
      "r13"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/InventoriesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock": {
     "auth_ref": [
      "r186"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the notional amounts of outstanding derivative positions.",
        "label": "Schedule of Notional Amounts of Outstanding Derivative Positions [Table Text Block]",
        "terseLabel": "Schedule of Notional Amounts of Outstanding Derivative Positions"
       }
      }
     },
     "localname": "ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "auth_ref": [
      "r125"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Product Warranty Liability [Table Text Block]",
        "terseLabel": "Changes in Warranty Obligations"
       }
      }
     },
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "auth_ref": [
      "r107"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table]",
        "terseLabel": "Property, Plant and Equipment [Table]"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": {
     "auth_ref": [
      "r433",
      "r434",
      "r435",
      "r436",
      "r440",
      "r441",
      "r442"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Table presenting the description of the restructuring costs, such as the expected cost; the costs incurred during the period; the cumulative costs incurred as of the balance sheet date; the income statement caption within which the restructuring charges recognized for the period are included; and the amount of and periodic changes to an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost by type of restructuring.",
        "label": "Schedule of Restructuring and Related Costs [Table]",
        "terseLabel": "Schedule of Restructuring and Related Costs [Table]"
       }
      }
     },
     "localname": "ScheduleOfRestructuringAndRelatedCostsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock": {
     "auth_ref": [
      "r110",
      "r111",
      "r114"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of costs incurred for restructuring including, but not limited to, exit and disposal activities, remediation, implementation, integration, asset impairment, and charges against earnings from the write-down of assets.",
        "label": "Restructuring and Related Costs [Table Text Block]",
        "terseLabel": "Restructuring and Related Costs"
       }
      }
     },
     "localname": "ScheduleOfRestructuringAndRelatedCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": {
     "auth_ref": [
      "r109",
      "r115"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost. This element may also include a description of any reversal and other adjustment made during the period to the amount of an accrued liability for restructuring activities. This element may be used to encapsulate the roll forward presentations of an entity's restructuring reserve by type of cost and in total, and explanation of changes that occurred in the period.",
        "label": "Schedule of Restructuring Reserve by Type of Cost [Table Text Block]",
        "terseLabel": "Schedule of Restructuring Reserve by Type of Cost"
       }
      }
     },
     "localname": "ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock": {
     "auth_ref": [
      "r36",
      "r72"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block]",
        "terseLabel": "Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas"
       }
      }
     },
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "auth_ref": [
      "r33",
      "r72"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of 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.",
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r513",
      "r515",
      "r517",
      "r518",
      "r519",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": {
     "auth_ref": [
      "r148"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Details comprising a table providing supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [Table]",
        "terseLabel": "Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r142",
      "r143",
      "r144"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "terseLabel": "Summary of Stock Option Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "auth_ref": [
      "r146"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.",
        "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "terseLabel": "Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted"
       }
      }
     },
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.",
        "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "terseLabel": "Schedule of Performance Restricted Stock Units"
       }
      }
     },
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "auth_ref": [
      "r126",
      "r127",
      "r128",
      "r130",
      "r131",
      "r132",
      "r133",
      "r134",
      "r135",
      "r136",
      "r251",
      "r252",
      "r253",
      "r333",
      "r462",
      "r463",
      "r464",
      "r466",
      "r470",
      "r475",
      "r477",
      "r786",
      "r816",
      "r829"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity.",
        "label": "Schedule of Stock by Class [Table]",
        "terseLabel": "Schedule of Stock by Class [Table]"
       }
      }
     },
     "localname": "ScheduleOfStockByClassTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock": {
     "auth_ref": [
      "r82"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Schedule of Unrealized Loss on Investments [Table Text Block]",
        "terseLabel": "Gross Unrealized Losses and Fair Value for Available-for-Sale Investments"
       }
      }
     },
     "localname": "ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "auth_ref": [
      "r62"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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).",
        "label": "Schedule of Weighted Average Number of Shares [Table Text Block]",
        "terseLabel": "Calculation of Weighted Average Shares"
       }
      }
     },
     "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r94"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "terseLabel": "Estimated Amortization Expense Succeeding Fiscal Years"
       }
      }
     },
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting [Abstract]",
        "terseLabel": "Segment Reporting [Abstract]"
       }
      }
     },
     "localname": "SegmentReportingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r338",
      "r339",
      "r340",
      "r344",
      "r345",
      "r349",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r360",
      "r361",
      "r362"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.",
        "label": "Segment Reporting Disclosure [Text Block]",
        "terseLabel": "Segment and Geographic Information"
       }
      }
     },
     "localname": "SegmentReportingDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r40"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.",
        "label": "Selling, General and Administrative Expense",
        "terseLabel": "Selling, general, and administrative expenses"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r52"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "terseLabel": "Stock-based compensation expense and the related income tax benefit recognized, credits"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r800"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "terseLabel": "Vesting period for stock option plans"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "auth_ref": [
      "r534"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "negatedTerseLabel": "Forfeited or expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r534"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "terseLabel": "Forfeited or expired, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r532"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "terseLabel": "Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r532"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Granted, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r529",
      "r530"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "periodEndLabel": "Nonvested ending balance outstanding",
        "periodStartLabel": "Nonvested beginning balance outstanding"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r529",
      "r530"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Nonvested ending balance, weighted-average exercise price",
        "periodStartLabel": "Nonvested beginning balance, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]",
        "terseLabel": "Weighted-Average Grant Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r533"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedTerseLabel": "Vested",
        "terseLabel": "Vested (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r533"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Vested, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r543"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "terseLabel": "Expected dividend yield"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r542"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "terseLabel": "Expected volatility"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r544"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "terseLabel": "Risk-free rate"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r148"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "terseLabel": "Shares available for grant under stock option plans"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r523"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "terseLabel": "Exercisable, Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r523"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "terseLabel": "Exercisable, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "auth_ref": [
      "r879"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period",
        "negatedLabel": "Forfeited or expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r879"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price of options that were either forfeited or expired.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price",
        "terseLabel": "Forfeited or expired, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "auth_ref": [
      "r880"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net number of share options (or share units) granted during the period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Net of Forfeitures",
        "terseLabel": "Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r535"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Weighted-average grant-date fair values of stock options granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "auth_ref": [
      "r148"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "terseLabel": "Outstanding, aggregate intrinsic value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r521",
      "r522"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "periodEndLabel": "Ending balance outstanding",
        "periodStartLabel": "Beginning balance outstanding"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "terseLabel": "Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r521",
      "r522"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "periodEndLabel": "Ending balance outstanding, weighted-average exercise price",
        "periodStartLabel": "Beginning balance outstanding, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "auth_ref": [
      "r538"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number",
        "terseLabel": "Options vested or expected to vest"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "auth_ref": [
      "r537"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "terseLabel": "Options vested or expected to vest, aggregate intrinsic value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r537"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "terseLabel": "Options vested or expected to vest, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r517",
      "r518",
      "r519",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Award Type [Domain]",
        "terseLabel": "Equity Award [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r526"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "terseLabel": "Exercised, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r525"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "terseLabel": "Granted, weighted-average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r520",
      "r539",
      "r540",
      "r541",
      "r542",
      "r545",
      "r554",
      "r555"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]",
        "terseLabel": "Shares"
       }
      }
     },
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareRepurchaseProgramAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by share repurchase program.",
        "label": "Share Repurchase Program [Axis]",
        "terseLabel": "Share Repurchase Program [Axis]"
       }
      }
     },
     "localname": "ShareRepurchaseProgramAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareRepurchaseProgramDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the share repurchase program.",
        "label": "Share Repurchase Program [Domain]",
        "terseLabel": "Share Repurchase Program [Domain]"
       }
      }
     },
     "localname": "ShareRepurchaseProgramDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r541"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term",
        "terseLabel": "Expected term (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r148"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "terseLabel": "Exercisable, weighted-average remaining contractual term (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r145"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "terseLabel": "Outstanding, weighted-average remaining contractual term (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r537"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term",
        "terseLabel": "Options vested or expected to vest, weighted-average remaining contractual term (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "auth_ref": [
      "r730",
      "r731",
      "r732",
      "r806"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Short-Term Investments [Member]",
        "terseLabel": "Short-term Investments [Member]"
       }
      }
     },
     "localname": "ShortTermInvestmentsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r60",
      "r283"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Significant Accounting Policies [Text Block]",
        "terseLabel": "Summary of Significant Accounting Policies"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SovereignDebtSecuritiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Debt security issued by foreign government (not within the country of domicile of the entity).",
        "label": "Sovereign Debt Securities [Member]",
        "terseLabel": "Sovereign Bonds [Member]"
       }
      }
     },
     "localname": "SovereignDebtSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StandardProductWarrantyPolicy": {
     "auth_ref": [
      "r122"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.",
        "label": "Standard Product Warranty, Policy [Policy Text Block]",
        "terseLabel": "Warranty Obligations"
       }
      }
     },
     "localname": "StandardProductWarrantyPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StateAdministrationOfTaxationChinaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government of China.",
        "label": "State Administration of Taxation, China [Member]",
        "terseLabel": "State Administration of Taxation, China [Member]"
       }
      }
     },
     "localname": "StateAdministrationOfTaxationChinaMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r21",
      "r129",
      "r237",
      "r276",
      "r277",
      "r278",
      "r298",
      "r299",
      "r300",
      "r304",
      "r312",
      "r314",
      "r332",
      "r383",
      "r478",
      "r551",
      "r552",
      "r553",
      "r580",
      "r581",
      "r610",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r641",
      "r660",
      "r719",
      "r720",
      "r721"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]",
        "terseLabel": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Statement [Line Items]",
        "terseLabel": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]",
        "terseLabel": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]",
        "terseLabel": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]",
        "terseLabel": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]",
        "terseLabel": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r298",
      "r299",
      "r300",
      "r332",
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]",
        "terseLabel": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r4",
      "r5",
      "r129",
      "r136",
      "r526"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "negatedLabel": "Exercised",
        "terseLabel": "Issuance of common stock under stock option plans, shares"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r21",
      "r129",
      "r136"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "terseLabel": "Issuance of common stock under stock option plans"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockOptionPlanExpense": {
     "auth_ref": [
      "r53"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 14.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for option under share-based payment arrangement.",
        "label": "Stock or Unit Option Plan Expense",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "StockOptionPlanExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRedeemedOrCalledDuringPeriodShares": {
     "auth_ref": [
      "r129"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of stock bought back by the entity at the exercise price or redemption price.",
        "label": "Stock Redeemed or Called During Period, Shares",
        "terseLabel": "Stock Redeemed or Called During Period, Shares"
       }
      }
     },
     "localname": "StockRedeemedOrCalledDuringPeriodShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockRedeemedOrCalledDuringPeriodValue": {
     "auth_ref": [
      "r129"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity impact of the value of stock bought back by the entity at the exercise price or redemption price.",
        "label": "Stock Redeemed or Called During Period, Value",
        "terseLabel": "Stock Redeemed or Called During Period, Value"
       }
      }
     },
     "localname": "StockRedeemedOrCalledDuringPeriodValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramAuthorizedAmount1": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of stock repurchase plan authorized.",
        "label": "Stock Repurchase Program, Authorized Amount",
        "terseLabel": "Repurchase of authorized common stock"
       }
      }
     },
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount remaining of a stock repurchase plan authorized.",
        "label": "Stock Repurchase Program, Remaining Authorized Repurchase Amount",
        "terseLabel": "Stock Repurchase Program, Remaining Authorized Repurchase Amount"
       }
      }
     },
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "auth_ref": [
      "r4",
      "r5",
      "r129",
      "r136"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Stock Repurchased During Period, Shares",
        "negatedTerseLabel": "Repurchase of common stock, shares",
        "terseLabel": "Stock Repurchased During Period, Shares"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "auth_ref": [
      "r4",
      "r5",
      "r129",
      "r136"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Stock Repurchased During Period, Value",
        "negatedLabel": "Repurchase of common stock",
        "terseLabel": "Stock Repurchased During Period, Value"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r5",
      "r8",
      "r9",
      "r74",
      "r802",
      "r830",
      "r849",
      "r896"
     ],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Beginning Balance",
        "totalLabel": "Total shareholders\u2019 equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity Attributable to Parent [Abstract]",
        "terseLabel": "Shareholders\u2019 equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r137",
      "r284",
      "r463",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r476",
      "r478",
      "r608"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.",
        "label": "Stockholders' Equity Note Disclosure [Text Block]",
        "terseLabel": "Shareholders\u2019 Equity"
       }
      }
     },
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquity"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SubsequentEventLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Subsequent Event [Line Items]",
        "terseLabel": "Subsequent Event [Line Items]"
       }
      }
     },
     "localname": "SubsequentEventLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r642",
      "r663"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event [Member]",
        "terseLabel": "Subsequent Event [Member]"
       }
      }
     },
     "localname": "SubsequentEventMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTable": {
     "auth_ref": [
      "r642",
      "r663"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discloses pertinent information about one or more 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.",
        "label": "Subsequent Event [Table]",
        "terseLabel": "Subsequent Event [Table]"
       }
      }
     },
     "localname": "SubsequentEventTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r642",
      "r663"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Axis]",
        "terseLabel": "Subsequent Event Type [Axis]"
       }
      }
     },
     "localname": "SubsequentEventTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r642",
      "r663"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Domain]",
        "terseLabel": "Subsequent Event Type [Domain]"
       }
      }
     },
     "localname": "SubsequentEventTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events [Abstract]",
        "terseLabel": "Subsequent Events [Abstract]"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r662",
      "r664"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.",
        "label": "Subsequent Events [Text Block]",
        "terseLabel": "Subsequent Events"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SummaryOfIncomeTaxContingenciesTextBlock": {
     "auth_ref": [
      "r155",
      "r157",
      "r158"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure for tax positions taken in the tax returns filed or to be filed for which it is more likely than not that the tax position will not be sustained upon examination by taxing authorities and other income tax contingencies. Includes, but is not limited to, interest and penalties, reconciliation of unrecognized tax benefits, unrecognized tax benefits that would affect the effective tax rate, tax years that remain subject to examination by tax jurisdictions, and information about positions for which it is reasonably possible that amounts unrecognized will significantly change within 12 months.",
        "label": "Summary of Income Tax Contingencies [Table Text Block]",
        "terseLabel": "Changes in the Reserve for Income Taxes, Excluding Interest and Penalties"
       }
      }
     },
     "localname": "SummaryOfIncomeTaxContingenciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "auth_ref": [
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by specific tax credit related to an unused tax credit.",
        "label": "Tax Credit Carryforward [Axis]",
        "terseLabel": "Tax Credit Carryforward [Axis]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Tax Credit Carryforward [Line Items]",
        "terseLabel": "Tax Credit Carryforward [Line Items]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "auth_ref": [
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name of the tax credit carryforward.",
        "label": "Tax Credit Carryforward, Name [Domain]",
        "terseLabel": "Tax Credit Carryforward, Name [Domain]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxCreditCarryforwardTable": {
     "auth_ref": [
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A listing of tax credit carryforwards available to reduce future taxable income including descriptions, amounts, expiration dates, limitations on use and the related deferred tax assets and valuation allowances.",
        "label": "Tax Credit Carryforward [Table]",
        "terseLabel": "Tax Credit Carryforward [Table]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "auth_ref": [
      "r234",
      "r235",
      "r236",
      "r365",
      "r366",
      "r368"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for accounts receivable.",
        "label": "Accounts Receivable [Policy Text Block]",
        "terseLabel": "Accounts Receivable"
       }
      }
     },
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TrademarksMember": {
     "auth_ref": [
      "r170"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style.",
        "label": "Trademarks [Member]",
        "terseLabel": "Trademarks [Member]"
       }
      }
     },
     "localname": "TrademarksMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "auth_ref": [
      "r375",
      "r376",
      "r461",
      "r475",
      "r607",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r846",
      "r847",
      "r848",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r922",
      "r923"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Financial Instruments [Domain]",
        "terseLabel": "Financial Instruments [Domain]"
       }
      }
     },
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "auth_ref": [
      "r433",
      "r434",
      "r440",
      "r441"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the types of restructuring costs.",
        "label": "Type of Restructuring [Domain]",
        "terseLabel": "Type of Restructuring [Domain]"
       }
      }
     },
     "localname": "TypeOfRestructuringDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_USTreasuryBillSecuritiesMember": {
     "auth_ref": [
      "r912"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "US Treasury Bill Securities [Member]",
        "verboseLabel": "Treasury Bills [Member]"
       }
      }
     },
     "localname": "USTreasuryBillSecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "auth_ref": [
      "r774",
      "r794",
      "r796",
      "r912"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This category includes information about debt securities issued by the United States Department of the Treasury and backed by the United States government. Such securities primarily consist of treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years).",
        "label": "US Treasury Securities [Member]",
        "terseLabel": "Treasury Bills [Member]"
       }
      }
     },
     "localname": "USTreasurySecuritiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.",
        "label": "Unbilled Receivables, Current",
        "terseLabel": "Unbilled revenue"
       }
      }
     },
     "localname": "UnbilledReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UncollectibleReceivablesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Uncollectible Receivables [Member]",
        "terseLabel": "Reserve for Uncollectible Accounts Receivable and Sales Return [Member]"
       }
      }
     },
     "localname": "UncollectibleReceivablesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "auth_ref": [
      "r558",
      "r567"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unrecognized tax benefits.",
        "label": "Unrecognized Tax Benefits",
        "periodEndLabel": "Balance of reserve for income taxes",
        "periodStartLabel": "Balance of reserve for income taxes"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r568"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "negatedTerseLabel": "Gross amounts of decreases in unrecognized tax benefits as a result of tax positions taken in prior periods"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities": {
     "auth_ref": [
      "r570"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities",
        "negatedTerseLabel": "Gross amounts of decreases in unrecognized tax benefits relating to settlements with taxing authorities"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "auth_ref": [
      "r566"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "terseLabel": "Interest and penalties, gross"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "auth_ref": [
      "r566"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense",
        "terseLabel": "Income tax penalties and interest expense"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "auth_ref": [
      "r569"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "terseLabel": "Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in the current period"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r568"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "terseLabel": "Gross amounts of increases in unrecognized tax benefits as a result of tax positions taken in prior periods"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "auth_ref": [
      "r571"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.",
        "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations",
        "negatedLabel": "Gross amounts of decreases in unrecognized tax benefits as a result of the expiration of the applicable statutes of limitations"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r69",
      "r70",
      "r71",
      "r334",
      "r335",
      "r336",
      "r337"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "Use of Estimates in the Preparation of Financial Statements"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": {
     "auth_ref": [
      "r832",
      "r833",
      "r834",
      "r835",
      "r836"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward.",
        "label": "SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]",
        "terseLabel": "Deferred Tax Valuation Allowance [Member]"
       }
      }
     },
     "localname": "ValuationAllowanceOfDeferredTaxAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesAdjustments": {
     "auth_ref": [
      "r837"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in valuation and qualifying accounts and reserves from adjustment.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Increase (Decrease) Adjustment",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "auth_ref": [
      "r290",
      "r296"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount",
        "periodEndLabel": "Balance\u00a0at End of Period",
        "periodStartLabel": "Balance\u00a0at Beginning of Period",
        "terseLabel": "Accounts receivable, allowance for credit losses"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesBalance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "auth_ref": [
      "r293"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense",
        "terseLabel": "Charged\u00a0to Costs and Expenses"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts": {
     "auth_ref": [
      "r294"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to accounts other than cost and expense.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account",
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesChargedToOtherAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDeductions": {
     "auth_ref": [
      "r295"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction",
        "negatedLabel": "Deductions"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesDeductions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "auth_ref": [
      "r290",
      "r291",
      "r292",
      "r295",
      "r296"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]",
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "auth_ref": [
      "r290",
      "r291",
      "r292",
      "r295",
      "r296"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]",
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "auth_ref": [
      "r841"
     ],
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "order": 2.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.",
        "label": "Weighted Average Number of Shares Outstanding, Diluted, Adjustment",
        "terseLabel": "Effect of dilutive stock options"
       }
      }
     },
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r319",
      "r324"
     ],
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Diluted (in shares)",
        "totalLabel": "Diluted weighted-average common and common-equivalent shares outstanding"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]",
        "terseLabel": "Weighted-average common and common-equivalent shares outstanding:"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r318",
      "r324"
     ],
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "order": 1.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "terseLabel": "Basic (in shares)",
        "verboseLabel": "Basic weighted-average common shares outstanding"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 17
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "40",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "50",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "50",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=16397303&loc=d3e19379-109286",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=126905981&loc=d3e2420-110228",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "https://asc.fasb.org/topic&trid=2155823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.3)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.3,4)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.4)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "https://asc.fasb.org/topic&trid=2144648",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907644&loc=d3e11281-110244",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12524-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(2))",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(3))",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(5)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(CFRR 211.02)",
   "Topic": "480",
   "URI": "https://asc.fasb.org/extlink&oid=122040564&loc=d3e177068-122764",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=65888546&loc=d3e21300-112643",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21553-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21484-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21488-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21506-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21521-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21538-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "https://asc.fasb.org/topic&trid=2208762",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409733&loc=d3e19396-108361",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409733&loc=d3e19512-108361",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409875&loc=d3e20028-108363",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a),20,24)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11149-113907",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11178-113907",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "37",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "38",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6578-128477",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6613-128477",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966325&loc=d3e6819-128478",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "https://asc.fasb.org/topic&trid=2303972",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569616-111683",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569643-111683",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(3)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c),(3)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126966630&loc=d3e41228-113958",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579240-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5580258-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41638-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(c)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41641-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41675-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(24))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41678-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "182",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=127000641&loc=SL5629052-113961",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "25",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=121577467&loc=d3e76258-113986",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "815",
   "URI": "https://asc.fasb.org/topic&trid=2229140",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "60",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13279-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=SL51823488-111719",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(17))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126980459&loc=d3e62557-112803",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126980459&loc=d3e62586-112803",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=116884095&loc=d3e14764-158437",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5212-111524",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5093-111524",
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226000-175313",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(12))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(15))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(16))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(17))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(18))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225877-175312",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669686-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL34724391-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(24))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e640-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18726-107790",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(n))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C)(2))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(25))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669686-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(4)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e689-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=SL108384541-122693",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "250",
   "URI": "https://asc.fasb.org/topic&trid=2122394",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e557-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "https://asc.fasb.org/topic&trid=2144383",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e543-108305",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900988&loc=SL77927221-108306",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8657-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8844-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "34",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8981-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "https://asc.fasb.org/topic&trid=2134510",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e4975-111524",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)(1)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)(2)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=124260329&loc=d3e26610-111562",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(aaa)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27198-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27232-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=SL120269820-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27290-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27290-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27337-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27357-111563",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.3)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919253-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919258-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919230-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124258926&loc=SL82898722-210454",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922888-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922888-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922888-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922890-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922895-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922900-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(i)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922900-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124269663&loc=SL82922900-210455",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4542-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "https://asc.fasb.org/topic&trid=2126998",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.9)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/subtopic&trid=2144439",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16373-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/subtopic&trid=2144471",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(e))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "420",
   "URI": "https://asc.fasb.org/topic&trid=2175745",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496180-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130558-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130550-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "https://asc.fasb.org/topic&trid=49130388",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iii)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(03)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(l)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(o)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(p)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(q)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(r)(1)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(r)(2)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=21916913&loc=d3e273930-122802",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "60",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=6414203&loc=d3e39689-114964",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "https://asc.fasb.org/topic&trid=2235017",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4534-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(l)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "https://asc.fasb.org/topic&trid=2228938",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(a)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(b)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r562": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r565": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r566": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r567": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r569": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r570": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r571": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r573": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r574": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r575": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r576": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r579": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4304-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r582": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r584": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r586": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r587": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r588": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r589": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r593": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r594": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r595": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "https://asc.fasb.org/topic&trid=2144680",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r596": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r597": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r598": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r599": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "https://asc.fasb.org/topic&trid=2122369",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r600": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e7008-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r601": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r602": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r603": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r604": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r605": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r606": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624181-113959",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r607": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=d3e90205-114008",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r608": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=SL126733271-114008",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r609": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r610": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r611": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r612": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r613": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r614": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r615": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r616": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r617": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r618": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(1)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r619": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)(2)",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r620": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r621": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19279-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r622": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=SL6742756-110258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r623": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594809&loc=SL116692626-108610",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r624": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r625": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r626": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r627": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r628": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r629": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=126980362&loc=d3e28228-110885",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r630": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r631": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r632": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30755-110894",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r633": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r634": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r635": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r636": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r637": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r638": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r639": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r640": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32262-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r641": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r642": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r643": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "830",
   "URI": "https://asc.fasb.org/topic&trid=2175825",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r644": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r645": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r646": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r647": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r648": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r649": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918666-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r650": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r651": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r652": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r653": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r654": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/subtopic&trid=77888251",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r655": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123420820&loc=SL77919311-209978",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r656": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=124258985&loc=SL77919359-209981",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r657": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=124258985&loc=SL77919372-209981",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r658": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "https://asc.fasb.org/subtopic&trid=77888252",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r659": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r660": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r661": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r662": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r663": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r664": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "https://asc.fasb.org/topic&trid=2122774",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r665": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)(i)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r666": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)(ii)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r667": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r668": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r669": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r670": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(bb)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r671": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r672": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r673": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r674": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r675": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r676": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r677": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r678": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=66007379&loc=d3e113888-111728",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r679": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=109249958&loc=SL34722452-111729",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r680": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r681": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r682": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r683": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(4)(i)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122625-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r684": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r685": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r686": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r687": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(4)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r688": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(5)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r689": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(6)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r690": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(a)(7)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r691": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(b)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r692": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(e)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r693": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(e)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r694": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Subparagraph": "(e)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=128311188&loc=d3e122739-111746",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r695": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r696": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=126938201&loc=d3e55415-109406",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r697": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r698": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "350",
   "Subparagraph": "(a)",
   "Topic": "920",
   "URI": "https://asc.fasb.org/extlink&oid=120155617&loc=SL120155628-234783",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r699": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "350",
   "Subparagraph": "(b)",
   "Topic": "920",
   "URI": "https://asc.fasb.org/extlink&oid=120155617&loc=SL120155628-234783",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r700": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "350",
   "Subparagraph": "(a)",
   "Topic": "920",
   "URI": "https://asc.fasb.org/extlink&oid=120155617&loc=SL120155638-234783",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r701": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r702": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r703": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(1)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r704": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(2)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r705": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(3)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r706": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r707": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r708": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(6))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r709": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(26))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r710": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r711": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r712": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Subparagraph": "(a)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126980459&loc=SL120269850-112803",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r713": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r714": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r715": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(22))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r716": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r717": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r718": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r719": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r720": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r721": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r722": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r723": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(ii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r724": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r725": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iv)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r726": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r727": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r728": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "210",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=118262064&loc=SL116631418-115840",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r729": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "210",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=118262064&loc=SL116631419-115840",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r730": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r731": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r732": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r733": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r734": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=126942805&loc=d3e3115-115594",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r735": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r736": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "450",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=6491354&loc=d3e6049-115624",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r737": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r738": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r739": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r740": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r741": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r742": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r743": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r744": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r745": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r746": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r747": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r748": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r749": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=124260329&loc=d3e26626-111562",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r750": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r751": {
   "Footnote": "2",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r752": {
   "Footnote": "4",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "29",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r753": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column B",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r754": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column C",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r755": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column D",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r756": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column E",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r757": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column F",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r758": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column G",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r759": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column H",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(aa)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r760": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "Column I",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r761": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "09",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r762": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r763": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r764": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6935-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r765": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r766": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r767": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r768": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r769": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r770": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r771": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r772": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r773": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r774": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r775": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r776": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r777": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r778": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=121590138&loc=SL82922954-210456",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r779": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r780": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r781": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r782": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(1))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r783": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r784": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r785": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r786": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r787": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r788": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r789": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r790": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r791": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r792": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r793": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r794": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r795": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(01)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r796": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r797": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r798": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r799": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r800": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r801": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r802": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r803": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r804": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r805": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r806": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "320",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "Topic": "946",
   "URI": "https://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r807": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r808": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r809": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27198-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r810": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r811": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r812": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r813": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r814": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r815": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r816": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054",
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef"
  },
  "r817": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r818": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r819": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27290-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r820": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r821": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r822": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r823": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r824": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r825": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(b)(2))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r826": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r827": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r828": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r829": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27337-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r830": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r831": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r832": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r833": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r834": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r835": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r836": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r837": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r838": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r839": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27340-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r840": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r841": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r842": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r843": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r844": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27161-111563",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r845": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27232-111563",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r846": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "321",
   "URI": "https://asc.fasb.org/extlink&oid=126980263&loc=SL75117539-209714",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r847": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "321",
   "URI": "https://asc.fasb.org/extlink&oid=126980263&loc=SL75117539-209714",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r848": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "321",
   "URI": "https://asc.fasb.org/extlink&oid=126980263&loc=SL75117539-209714",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r849": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27357-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r850": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r851": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "340",
   "URI": "https://asc.fasb.org/extlink&oid=126905575&loc=SL49131252-203054",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r852": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r853": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r854": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r855": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r856": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r857": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r858": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r859": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "320",
   "URI": "https://asc.fasb.org/extlink&oid=126970911&loc=d3e27357-111563",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r860": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r861": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r862": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r863": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16373-109275",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r864": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "410",
   "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r865": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=109237686&loc=d3e17752-110868",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r866": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r867": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(b)(2))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r868": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r869": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r870": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r871": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r872": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "https://asc.fasb.org/topic&trid=2127136",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r873": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r874": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r875": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r876": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r877": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r878": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r879": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r880": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r881": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r882": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "740",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126970579&loc=d3e23163-113944",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r883": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r884": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r885": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r886": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r887": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r888": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r889": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r890": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "15",
   "SubTopic": "50",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6911878&loc=d3e8732-128492",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r891": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r892": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r893": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5580258-113959",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r894": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r895": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r896": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r897": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123602790&loc=d3e30304-110892",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r898": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r899": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123399704&loc=SL77918431-209957",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r900": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r901": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r902": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r903": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r904": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r905": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r906": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r907": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r908": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r909": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r910": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r911": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "730",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r912": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "320",
   "Subparagraph": "(b)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126980459&loc=d3e62557-112803",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r913": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(3)(b))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r914": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r915": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r916": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r917": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r918": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(b)",
   "Publisher": "SEC",
   "Section": "1402",
   "Subparagraph": "(1)",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r919": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(b)",
   "Publisher": "SEC",
   "Section": "1402",
   "Subparagraph": "(2)",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r920": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(b)",
   "Publisher": "SEC",
   "Section": "1402",
   "Subparagraph": "(3)",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r921": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(c)",
   "Publisher": "SEC",
   "Section": "1402",
   "Subparagraph": "(2)(i)",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r922": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(c)",
   "Publisher": "SEC",
   "Section": "1402",
   "Subparagraph": "(2)(ii)",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r923": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(c)",
   "Publisher": "SEC",
   "Section": "1402",
   "Subparagraph": "(2)(iii)",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16373-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  }
 },
 "version": "2.2"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>131
<FILENAME>0000851205-23-000004-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-23-000004-xbrl.zip
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
M#W\U/P70_X1P-EFI!42=4(.(TA>4%&*VX KST$\))Z\))U>$6QK"?>X'DY
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
M<#YK# 0&PX8T.P_@30PI2RI&"QM,-J27#]Q[C@#G@BH&<C4'KO=8-^,DGV7
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
M$T7.(FB(EJ+P(1))'4,0):YBCA_03*BZX,?H7*S+["R$CQR60JVV$R"Z$):
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
M&F?ZAM82'UG[?S*A$K)%1"-2K6E:DD\UQG&$2GCVT5<JFIL+[DU%WUZCUL:
M>XX0*;-+M$I96T#43<+)UB%N5UQ&Y=)5V4:FV;UYR=O[H$](=$_+?%$8;6-T
MN13@B"TZ[9/PTDF/@>"S?GHO(V)WV$]G.($")=@B:Q[U6F1!(#CD1B21F6YD
MKOR"5._;;2%&T3]K-VZ,6[3;3&J.*!7%-#\P%(*,[!ERMAX@&Z+ [F+Q-<_:
M.QSEG?,3^G1W\4;_I#<\)WHU&:;CK9,Z<]@0B1-(0=(@2C"))8Z-.:?L. XL
MGK DU8  H\[S;N/@@#YLL&EW!]W^:?^?IC]:!-3G'ZDXD:5SQFBE#:A2]_2
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
MCZZ9D73R1C0AE^;\Y=M\UN![854MOLD"'+3W'H,()FJ?G3#*-"$AV<)TK05
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
M*REY7UR,PF1OHRD2',C )C$2I4PA:@PA+W!5^H4VCTLN"N^$BI)<#EGKG-"
MDC%&P^%)8%^M#)%=4?$'X8%0*9> 19,74#(&]I$9-"@1^("^7 JMA5K<Y+BO
M3N.8_G/*%VV\Y7^^3'/^V0EW"HQN"36;#+G"!:*<C)620"%R(!9]]"(HX=AA
MA,4?W'^-O=/+KM+K#=_5#C3^8,+'7^*T.TC#7H_2I!M[]"$E?E-&X6/PRJ98
M#.(4,!144D@Z4M3)I"8-_2PN<O,/<9.P8+/RREL :7/0&:U.)5II48!=?,>Y
MN.C>C=))*/@_&U0JX*7W3D5K4PG&VV B+/X.BT8 -KNM$,FZPMTJL3JU$,"B
MEI T]RE(Z))J4BF8Q45N_NL,"V1)TVH:(H&"$H/+,6)Q)B@TN5R595BA^X_Z
M9:W9,*M0@2$RV1N=?8122C0V9%!11F\3797*:T:Z@,5%;OZY Z231M=<'P8
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
MK.\&N_[>8&^_U54-)X>Y;C[RN@%@GLDD;#%U:[LTS_5 69N<W!HLV=I@ZG2
M+K?<3'ZF/M,FS*NVC5X9Q',C.S:B@@>^T"BEBRS9U*Z;^W/QSX1\:1@3)Q-\
M%*19)B-).;:894C'E&+ Y"9*9WD\U_&294_=QN6J G#_ZF&\E!8JS97,M5T"
M+3#.HE+LRA1[8O N2*E2U4_\>)Y'''I+4$E%-ZH^\#$"BS%:E>0<U,."4_B*
M:,7,TUTQ,4&^:N_V+'<K5S,5JQN4*C,$B0J[4HV[M_=3JP,^9N.HW@31W@K(
MXP1D&>HV'ZLXUE%^[^62QGLKD:;;4N!M3'/3PUG;F.96"+8QS6U,\Q^[,$_J
M@N[_W2%- 0ZBS?/LX3YG1Z/NZ=W)IY/)Z?@$[L>AS-'\]/K7Z(_+]]')]?'\
MZN[U]<G=U4(=]]D1W/NN/[]J]6]/)N\XE'ETW#J9P'T^',.S?[T^09[Q9:',
ML-7=ZZEFN][=W^W6.ZK5J?N]YFY]OQNJH!&T!HU=M<9PGW6+.SR32=B&,M=V
M:9[I.;(V!5]KL&(/B&3JGRPLZA-M,(*>'8Q&F1IA" ,C%ZKP;OQXAD$C[R85
ML%\:?/3@ *>@$Y4 #S'V"#]9%J;TZ<-?9_&<IZQ=\] N^-'[3JR,U\3=DB;>
M+(G8QICEX8NRT>&'^_L=U6@-=\'8: QW?37HMEN=]BZ8'KUF:_CG,1D=O0;,
M.QQQT<2/\__[HK%H>+PE$-GK./6+DMWQ8S*;U,.TJ,NO8?E VA3=8P/MC_>=
M\!?X?2N^&5RGC3_>]#_]<?W'^'3R>G)Z=-(XO3N>GQ$#[_GUR5'0.CLZO[YJ
M_?KQI+DW/[WK?_JSU5*-WJ [K'<[N[UZIPGVPY[JJ?I^&.X.=IO-[OY^[\6K
M7JW;:M0:S6ZMUVUI*T*OYJM%N-U:B#<8G9,T82&N>5,_$_G^;J?1:&'0T\O'
M?J9J7CHK"-:*(B\R["<S/Q,Q;NV3'+=_]%:*,=THKTCR;M@9M)J#X=Z@V>B
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
M0M7]$]TAKNP^ZNKGZUE>1,/Y4VE<:5\>Y=Y!DLS\V#NG5MY>FGBOTVS"1U
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
MCL&L^!W323]3AAVC8BF>^)@T2&ZB+&6(*-$.ER8^E9P\FP_%\N",F60Z4Z-
ME@C#R)(/@K'!G=%(*.25G.$Q" 4LGF?@TQQ;3_^8//V?Z6U_%D]?NE=LQ&M:
MXL*'12_<=*78[G/ZTFN"M8Q6<^P/5,R_U@E$HHP@OP,C>=[+H[<GWWMX6S2#
M9Q0ZT52YC!RW"=VE))1+."07:"?QR299Q>1M1W[AG_B)[&BW4*YB_6.MWB<5
MUB<8#123, G'*K;VI5/7IZ>([5Y2-W#IU.-"UCL-P@$;>H+69HF2SD%I$_!U
M.BL,TPPR.1(V6TG=VOIMG.7AP7,IRJ]Y1[8BGU^K;YD@U^YE[MT>*AE1\MSA
M'*BYA ,:BV^)+E^>'_VW/YG^U/^>*WNY9K0$3"Z5'1.!(]WOLPR.J>'FUWE6
MMQ!P$?[AFTPNT_Y'A>9(T&/TB A?ZG5S#ZMA34V=+2',##NMV3RL%L;1U);>
MKGP]79SGH*^<-[5H[#(]C/V=.[N:C 5/0T9T.)XS,OZ$H6 8;I7I$50ES/2#
M0,5$/DY,E18N1;<MK0)GNTWG W%=-5-TN>;^Z5*(7S5K^< 8&M%B$$8@M.*#
MP1SN/E6BUOZNV6EZ\.B85N*[9KMK_T*A@$_,]Z;8B).T6!80@@()%&65VLV:
M8";@?YOT8_A' P-(&A44ERAB7,2B]'19(O<U:DWDA5R0@19BRM2<3#6AUQ<K
M0>-<*H\*J:APY:.&6(Q"HM/5?A6DV;%"WA+2SZGD9^U4X(HN+V"YQ0A2Q X6
M;Q%EDQ4;D^PAIBOF?D#ALF7N#I^#U&YRP3XL'G8GBRGJ)& WQ)ZE2$BV0'X"
MV@76F?!);/Q3.15FN;&P/DBG<VJX6M.!H9 ZDF6J,$GK-%D@JW&Y<2UQC4UT
MZT+_*29(T ^B9^2Z3KFL=UT")2)'X:)K9TFG>DGE-I2-,$3HHNH(P9OG%92%
M8 L-WHMP);?C-"9:*^QTYO27,\4^GC0Y<WJZW3]YV.^"LL'WC'M3=M/9U "S
MUV[$#^*D!O\N)%>X!  J-:[@+<&A^2@+Z[C0#"?+I.$>H_,$8THH=O$G+>\^
M)LI,)D(8GVT1*&=<(S92!$Q*@V+SF@&L96BU6WNGZ65=4%/E/2U3-0^[3-T/
MXDU)%$8\@4>(#6\B7Y.X+_D)!ZLM4,KRJGO,:2Z-%H69.H[P2&6T$[^-F**$
M.)1Y^ %?W?8P84TF.'M#!N_\>,<[,"WWQ-N7ZM?*7)IXO@N3H.&EJ]\/YQ\.
M.REZI-C^$N)&G*]#XATY1F\MH7Z!%_"S\2"EH[)6[JI1\]Y='&@XIX[SRUP8
MQ0R+X9M/;; &<ZH"*M/GM!B3VD#T8YNY()DB4GS:;!PMX:RR=BEUEDWSG6L_
MC98@Q,K;'>\U,>W!-\-H1-MA").;CTLS66K;5"EPK-E8"V(TIWJ)I$6FO0O\
M'@MW&6K*A&@G8'T':<UC%C$P;= VGVK1PB6Y9Z:7+5=-*+4^]PYP5[2Q==3.
M%FLB.+ ZAO+R+^M?LW:J<;DROR"JQD/I$L39;?%,+D3#K-V;W.OG,H\G8N<=
M2C;=:.CS-* 6[$T,7"K7=I?+S8>8+$,*"CX81EERB<!(W1)Q<A)II*Y[0[R\
M_JY44D=#N %S>Z*6\HKZNM7<,G)1;5BYA)ZZ]E@RL.ZE^BO+XN7K$G^&>VNW
M%,ED, 8DL\H4GM)E;6XZ7? >*IELL(4Y*QQ1QR:*CIE*;>F+,LN6CM?,5\;W
M<4B'6=53EA*CY@NU6@1DT=2;LRSYJ.851ER#%W(*,J1ML@#>; <:(6PK-4>P
MC;1XRK0OCS@!1.F2/(F9CNX\'6(B&HX^M&2KXFQ:>C9]0X.J0SW.G&(FM"'F
M_(.6WRE7B#($K6>1+ N%0D(F233'2<)!>2PU000 OR5%"Q<6&>8HQ1Z[G/)
M@".,RQ0$$&!VH$;, R;%<K.5G*</VH%PIOL#,"C&R\OA<=.7F/LKFQ(%ZW-4
MLV)?;(BV8[U=:M<FY8SE8^P=6$7PZ45!]2;W]#K;O;^'F(AP^4>M]K]TS^WR
M($PU2^W>:]Z0L0>G*2RK$"S RZV\G#VH#+0NQ:/E11?><L=;.3E.E0TQ:&,P
M(]$F,'[#XD2E,T=@>1(&/+_G;J4W6';3<Y7 7X-H2\;@2F]G"Z58AZ%LH10;
M :5X\8H@A:2&Y$P_03HU.K58\524EM66SK$O<=U[M%E9P2[19F7%^*L/$X"V
MT95*:MZ_4]BJB?=!A\;)D8,/WJH\7<-(\8,B11)D<7AVS GJ(9L=\Q$U&RO.
M3K;,=%4'VFB) <*+H2VYX-BV!-;@.Z>!T,GRWVIT D-5]8-,=&OA*J&F+J*B
MQ$U=2'F34TPR]2-FT;+>B E)++^M-B.KE->.@:M_6,+]SJ8A6282YL#<-S$/
MR-=P""INXG&PY$Z1\6.XVGNATX$;7>%0%PS5N#0CCIZDR,J@*BEQL#XC3)=K
M";#F?NEUS3L5I5YH3@C.].F%,UH8<O54F86WP3RZN5,(X=NF:S =/HK98BK5
MP%XH@L*. .U7(@Y7)<9P,-VK\F4DIURQ($E-L*.SW&4KMFSI$CN7^;/.=0V_
ML5R5?H#Y2J. N%I^_13"\OC(+P0O/O2G$<SEVHUY-<^H HE(YTJZ)N,R$:6'
M:2".(<-">#_+*6')DS#O()FWXH]*?@>!8PX8BZ.:4JN-6RN-PKRFB[5]S7*:
M()Q-^Y%F<#727 Q-T/AD=+KQ'*J94"4[L-1-@^F>-<Q @&_PAL9M'BA#9$KU
MM2#)2U*P&A/!XP"OH];I-#T]>HFW8)#>PG>:M4ZCS4R&Q#;$>7:CM;6>L+[Z
M3]YNJ_EPN,5/7G._R5T<JA1["TUYN8UIJ[5+-!$)H7$J9?TU(?N5TBX_Q(X"
MN30-V?'.^+@JOW<-7W*_R^0"GW4FUV\'+^R&9NLA[,$T0>^)9'?]7\DT'<AH
M75 W4Y,-9 'QF<#!$ O+Z_&Q_PF%'?,VN6B# O?[\-O4<--]?D25&04/>1^,
M:OX"=DO->QO[<_GG20I&R6L_+YX>(R)),)E K!"2/BE^8.G_!PIG7!H:<U)
M] ?9?5@H.:14SX#;\8 %I[F<ZVLQ[28&]QKII&M>_U. N6E2&F]!HQ)[./W5
MUVS1$]"=#M;@;4;'_3$9'?3)N<N^<@&VJ-&0KV?)W[&0FH2>T#,2AX=E"779
M%<$UN5,3\UX+M2R"/65=-<V$0YK"9%CS$E(M=43FX33<"F/%*SBX:UJ2,%B3
MV2/:08#!O@YF!3_<$K]C$P:)C)H\A6W81?%;KC?+;I0<1!;=MT!(KC-HNMD\
M=<&6"E\T_'0C=J3\8O=47$@*!TLQDN0P"N5/= D\[16D&9=QY-X)'5)2]GZH
MGQ[;/03NKC+?P"F&EN<:YMI6JFTM*X;B4"BD+'0>5H5RZ;K861P,8S*):V'K
M]Z2PV22GV!HI&$_ 2)PD%[^IR&:!/1.DRT$N50HDT<9S*</-IOZ\#F9&W:T&
MG()0I,@1-Z\ -C$DH+#=$J;_<;8MM)(2ON,T1LRE>1/3A800]BHOM'Y%"E^+
M'Q*C#?? E--HIADP\U=S>JK"J< X[,T0D?N,E2-N[88ZMO^?&?WW&(W3W& 1
M?U8XDYL#3&8PEW2S)!QY&"&( 3S/6:AUKU5!Y3ZH""[!J!-M WY_5--&WZM/
M =FJ_@!33R@9"SUGW-MQE@J[!CJ8]R6[A X*EWM:ISB1TNP@-^3<B2_0##DH
MQ$TB7J&Q'U?LA9AZ#KGY#&(7"_628TUSXO#;(2@)@U&(N#:?P>O/IK95$+T1
MN?FFQ3GC/^AHJ+R^J_Y#*VA*!"TJ"]I "YKW\JA__//WY:/E+'$ZQ7.C%$&^
M$"W8C2Z3CKACVX"1=FX/):9#TA* CX"I@H^BF,L@Y ]",+G8(*.[WJ,G]A8T
M211*NO["Y(+UB0KKDD7DXPQY6;H-2L*#"E+.TIAX'ZM3[C5*YQV(?:"!+3HF
M R>>:="IXQT#/_@X(B%90Y=I5?V#(:O"8X&)!M=N[ ^*X 8<N2%8 1A]U%H
MVW;2V6F:(B]#JV+*N S_](=#TTX@,//"A]M0A5B8A]UBX0>Z>H=@NC98PI!/
M/IIRMV41L6N"S4AWI_*X="JVJB;[81"*F_<GJA<>7,Z9;\[&F\=MBK@=F(CB
ML8UEK-W8[T4=Z>@8H8?5 &.]& 2]O;W="1A7  )#NAE[5=H8*A9Z*NXR.>9N
MP])42M]$S!H37S-&&G7B%0U$9H+4CS+83JX_)AL3!,J96/WC88IEE"S-<OEK
MTQ_J7.%AF9LP'H-XS'TO^H?@-![3%M+7X*@/DF1F?HVO\AKC=\U&_=\U[_<9
M>#P*2^3DYN[WO_...10BSNH5>W@#&XM3G\;1("ID^_H@ZZ'I'5Z,F>*8;S",
M8MY1PUFFX7^S+)\)+OQ")K#9?NE_CY<UNR_#[_4!?X$<>VPN@&L\IJC\ =7Y
M>,W]=H<2!O1P297D*;=GQ8*X-/'9EL&(0< A5P*N$O>''AY9*@;B2TJ&1XPZ
MI58>=Y$R:RS,_0+2M_RZ]_^8@_C45,2-Y,NWYI85*091VQFE-R4VZ5EN.ZT4
MQ/=>,2N(*B4J-%UNFEGHCKU_+M8-H]J0H9I8242S@0Y.ZM/9("8/UD8Z-0<?
MZ>$Y_L+X&'(7(M:&WXWD@;Q)Y&C#6[P^VG'W!8V<L;G5/<B% +X."M2X@[;Q
MDT/F!A9_F%1QC:V=U?N!;^$9ZC0O3(,9@PLS64XV/V6^AY'._NJ5$N%/G$?3
M O /_L>98>9FXGHDCFY$B<]L@Z@]9Y2Q-+=(D_@>=^F?B%;IKD:KX&BC\/^^
M^#P"H;G[8@MQ67.(R#\6XK+_]QN!QY?]D__^K^9NXZ?FP8_>^?'%O[W7!X>7
M9^<7&V()HF<*'N5'=C'!(>1B!S(?0I4'8+<K]IUOC7-!<8F$4,-.UPGBF/ .
M;'W'JMOJ'Q"0(O&%WD/H_?P*%W:HU,2+)OI@K;$-@!U:A+7=5LPQ0E;G_,GK
M,65]>."(43J<<=??XZ$G7,@<^^/AWBJF=4L#&$.M5&57<SJ1(LMB9)BVP#N;
MQ5R(F]HRLX"Z4 ]4R1FCK":&*I3CFF&  #GTQ:XS= ATZZ&@7709"AS]B&*N
MQVGZD2,E<'O;AIM^X,W3F0:G@ \9^XEIMX<?46IV&+E=H>-H$A6:,R%A>V_U
MDVK,SD6Y7FO&CX4J_<5K^>%O\L,+\\,7N IOT2 Y/O;JWC$6E_5,9Y[5AL?Z
M.86//5S.2;S.;7,Z*@K"*K@Y%K)$:^0ZKDS(+=>!J$*0+7#&/9:HB$%7]U5[
MQG#8G]D)-58'#4HB HBIN1YV6N&MDZB1[D0LVSFP^/LBRH=^8*SJ<B9)-N1F
M2,V+5P>ETAH4?MFLY1J57-@6BWA>KOL$0]Y?4?*YHEKRDAH_,-T[;3UWU=@+
MLRM*%RPOQT0=PRN7LRC;BC^? #FPB/@?*NC$4'GA9D+0R;+:55<;WT;D"D^X
MHY9S 4N%9.:,JR7J% \"')YX08NRX!W$X&5CM)9G];XJT[$T?W!2EODX&A8N
M,@[S2Z!8"P>VJC&HMQAT<$X":8MBYI]_R%#5*,]F4Z+.<>[-%>387L8P9CE0
M0!Q9]5YTZ&%'6$91B.XOM6LR#-Y&HA@HE1M_/S:MD=DI"U,F,EZR1>FLL5%
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
M(*6R-FVJIHA"<ZJ^Z>"1KJZDT5#FT!#!#0U3M>.]YBK<"17'8H93@J-1@J@
M<A4E_$1%/QJ55:K^$0SKDM*2<E4*O=%4> ?*KVQ_3&$#_1(,TL^_,DK?JZJ"
M>[<_L?TC'CYC\12I7-@=):Y UA&EU@%?/U'T3\2C[6WQ:.LPE"T>;2,H9AYE
M[[GMP2YM]V]49]CS/,9S'(OYWF:HHXKY^I@VC[0$C^_SU=GL7Y:?W32;CKJZ
M6%IU-T+A-'?/YWFA)GDY7V1;0MA(?:6@/9M54UX?E':AG5CNTKB(P*_IU#;S
M;LMRQW[PD9)5$UQ0BA-KA#KVAV"/\ 8Y3.,HGU#Q,1A(*5@$$]L.@CF.Y+#7
MQH+O!?,!FG-%@46*Y4RJF!;>"%XP$:X%L5XXGQPY$U<AFI5"1,2#V3Q:&$WC
M%-^=2?S\;,*<M<.822*I.$P7@%."FRD$S#R9##61IS@A^24KI+D\,PN#%^1_
MBO%)9GRBY+:>\1T/42WT$34(3B=1;B Z2]>M6D91Z"ZMOJF_M"8XIQ6Y'P-_
MMT("C<%-R<1AH5\R<I7.5)2.*Z>F;(%_#\.C])\'[^%/\0=99-:"\E5^/K;R
MP72O-;8J48"$_BHJV6&<Y!]3I'H&:\!<')Q_*-\<&1A"<0!,#('F'@>B"I_L
M83,#2^XJ]1U$;B-V9<V0;V%@6U(9R$OJVR0J&<E".1$SF9&PBV>VM?%4@;.C
M&TW,;41#.[/99&6,U&V&LJ31 F\I(R.P/#0-IK$"4JK_Y(W!%;FA&KJ4:%5U
MZ8:]W)1'H__IF,E+&[0(;X8- YD1OF9C>]6@'H/9<OT\#5A;W<UKR6RMST'Q
M\!.RV<):6&F' DNH:X2<$DMI;,I]6U 6T3.]0284N$[^9@B 3 U*G# !X(9
M]S,B_ADIPP&=/Y-^JMC@E+&UI)CHZ>S%F<?75@GM.DWX9[N>9*5CTJ>,J*0L
MWR41FF34_BPW&=<LT2$+G!20R1FA5Z<IGI$E$E8W9P;SYF>D+2L+(W'GBO6S
M ]8=+R5I;_R)N4;(!:A]7@FLE><S9;9[:? UKS]#Q:T;YS*&A4=Y#7?-0YW<
MO:726@;G4'Z%:@,KW??LER5-P*U4=,2"%2L_%Q84QI,F_Y-[;U1"&)\C?*>W
M=AJ<'KDO7[PY>GO^XOL:#Y/ZUG&TF?N=&S$GJ90\Y))WMBNAJ=@D$Z\K(0T<
M"?\PD>70H4UC&)OG9/%+^TS*CW4LP]'SP\R?*&*]UHQK(,JQWHO$[(2Y\=&,
MI0+^&ONF-H]8B9#PK7)8DVURBQ7GR(.-AA&R-& 63O\2F3VBCV@7$ND)->&R
MV$<]%.0VRI5B6D3II\BI!)H9%Y<58E@KG9IJ<^KC*]SN:%Q04,T5(?R1^S>3
MVCG=D@G#I,=K<@%"@\$&GCP(<[RQ#AYQMR=13]P66[^662UG.4[3A)18)/2;
MJ^M.A_C;FGLP.Q4(L&MC6YO EEJ)(UN35^$XA55HNG+GNG7SKHKU,9@7:(J>
MD@8WOQ5EXVA_)H<4K5-]PU+OKIR-0%MC01G\FD:#EZ'@:-E1IW.-RV<.QJJ.
M7Q\5_UBO<\CM3B-BX9;F7<@2/S>PEGNL7ET<JY  $:/"&G"WU%"396'ZQC6:
MLL?XJZ[=;"S]HAR7 /$(Z7/&8E1!3'(]\320Q5I$J  )#TOPV%H9-&DJT'6F
MGF&7TC:#OC'3CAT 8NE<JETO=H"",6::;R)R>RP;WH5^AVF4Z6V*;AG9G:B,
ME,HTAL'NIP#YH%0V5%'AE6O:J8M-E+OI$SF.I#@<AECM?(/65\1$\=4">=T:
M)(U5.3X@>&B]!&5^#81:E&R7B8(OPQ)8ZQZIOI4E)Y#N6/DW$:\_DD()2A4K
MX)',)$BG\PREI::/JI!:J&1<!F_,34< D-4-W%,!9KLLJ:3]G-B]*3:O6;R8
M#N0GN!2^[I-++9XP9329%@]Z2>)MU# VJHNG?(6XV2N<0V[-"?M]$#DM>(TL
M.R9AO!@MJ-)^U:SSY13(&_;#(MV"9+]=D:$1#G>E[?;:PA"?8NI)FT@BUF"N
MT-ZX@?D+?>.G4O.,R0TGC+>%@=]N=82QDHZ>U9J3R*]UBZ*9UMJ.$63H)M?)
M++R_E1I9%TFH_1#Q:UE"M3U>)C,A]YJ(8D2,,1H8#?GSL%:YCGBG\!R1%F;+
MIA"=6S@<L",CV)]N3$!B-4OG>,?K8US<>;*A_,5(G/LBUI/2FPVN3OPL@W,H
M=/8=_E':=OB!&Y<D;O J,3B<VE,S1(09T[X6AU%/K(7W:1_<8G1-I-^2+_&#
MF-,W&<$<(0R %\69'I=UOUK74(%2"-Z#^#XCI2LD"#"LJ]K<5(*F*N-GXC2
M(, ND1F2EU/ACG<"MT_I, ]LD$Z&JF-UC*$F"P&,P\+7<>V%6(43JB!#,[,N
M'1DZ(58-81LX_"42]ZA[@_/X;%YF9G4%F\W:U-79K$!@-)]RK#-2% 873]L.
M+DQ)V(E;EHG=1B/T?B/BZB=8MX%QL"S:0#E/SY#"$+@0]JYZ#[FG!AF;M@^1
M/S'EH.);Z-LMS"J8R&Y_,/?MTZP8@NN<ND\L[4V'M\@.0'VBTB:I:9)S+)V
M[8IQZ.C.I=VV]/]D84J6Q]0NZT@W[SG!^'RK2N9_(D!E?PM068>A; $JSP^@
MTO\$KJZ;<_U9!V OF/)]@R$II>"@7W#)%(>(3%- N)EE)W2"4K,D^L\,K9D,
MB^T*1"7&:(W5'I#2W<A(X66JT:X:W'HK=7^*1$0MGE78=EAJ+71[ +!AX&RA
M@TA K$2<Z&!<9!TH#A4E-6V&@<V=PA64Q7:6*/\(QC9(JA-!NB4F1;<#^GWK
MM<.P*PKQV! D)R\LY25ET4HQ1@:7%)A8H(0YF681UVO[3(F)8&&W5X:Q\%.3
MG8DR$3 BKL";@/E),2]J50)*K\Y]MRJ=0>133)047 P1EM!$W*L@=;CJ=3@,
M&Q+0ES A\-27+\XOWN4OON?8*@J\98.4?C\P)-^,&:>2$+FY2B(''L$%7P@C
MIKV$4FJA$V04JUS' *4%B7PD:@538FJ<QLS+H"TTURDJC67J!Q]]7<,%1BCL
M*&J2:YX)\L$A!8'WT#MS0Z&;%"TA\FQL[5JE;E'WC&;'2 @B0-#!^#/=G+P)
M;@]3OD00>C9;I?V"LCB5R21-]*ID9<L>%Z!R*^>URPW%D&*!F[OPZZ'M6'"A
ML,H=@Y,$@F.GL%;D:*$0&<LZF4T&'#I?E!0:C_3BIL>.D$K#HT."EXKG$C>W
MX5/FIFH48!B#)V)+N9"-066$@\*?:7&F ;(XV"M )[#W&(Q5B)EVTXJ+$IP5
MG0Q&=H#MJN$7\=P XH<1<[Y8%@BKVVMR$^'3%GU2C3[[&J!E;F$=-&VFQ\\$
MKO@SZ.0D,>G:%:SD$T$OX1N6-KRN*)>4AQ2ZEQJI<[%H3&[J%%PC).+ ):'0
M6..G\7R012']T?Q);L#U(R$E<TW.4PHB5O.3UZI8EE5DY=PY!;.Y/J<33%X:
MAZP;*V$W!$-?HN=&]YK ^H>I:Q0M(S&W,W4[-OGY-('U*32U"-%S$36S[;!B
M"RDD7>'4KQB28-MSPC2I<XY0C=B@#(\U14P))8<EHMR0HNNN#[J['-]_@MF>
MJ&!]KZ-*@D JV4*(=D#:>5_T],(1>Y"[< E*(O(Z.H_TD1J_IG4);-19ELC#
M?!F"^QBIWZ'4%4\I 3!4<A-E*:TZQ3J6,-'0NR%P)2IFI!67RR+=;I+"TM0$
M*%,6?_I>/YN9YY4_<0<@><'KU/++\)E>[D1IL]+4G@>/'6VTV*=1?P]JIH0W
MX7W""+C29<$X31E/&BO-PJ_[W\"$IR/%W71T78U3RNT-8_4ITLV0,EM[;T_=
M);:M$R(T9B"&7LCR8YTY4 NZDM.F3M0#''$]*1)LDMU1VIM,(!#.$U" 0>Z*
M?,W2?'U.11L[W45!E*O3UTA[?P&SOM,,;45#.II[1^PH5D=M$T0C+ 4=ZP([
M,@$YVTU&FY3&A4H"O*(4I';0L)4/HTWAW^.RU4?W"'2KG2N0"0E^DZ4"]N94
M-SS3T?1%4V8 )X*Z<;(UIC<9I[+), K5E!J3)M5H/>:[8\5$Z^A#6/)Z?)TO
M;$Y8:DSHZ_:<TNAS=5-5>)EJ0]5[Q)*F@7[,D5FQ!"U..Z00.MG0<//*JR $
M ;PT=6/Q&,Q8DN! SRB$[DS31Z6FZ$DH>\)S!8+N;["LZV.)TD;W"M![A*AG
MG<7G4;!-\0]@KGSQZJTP=8C73L=@A&JC4 FC*Z9PS-18++E<V30_%@B@[J_
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
M4)69E?>1Q/0@=DM"(CP5$3PR#J2K!6,Z-'LK*0A6./_R !3X]+\%(/8W@#I
MY@\U3>2C^(X;<[Z(-.983"J[L[/?V@IR#;HOM("B!# 9TE-!W(LXF%PG]FS8
M\%0NKA*2:Y8.7B(3&?<T,Y5 +F)')(P.;0(UQ3,4P(T91=1U2W=;)_BOPCZ5
M4WY7=^.JQI#RAFF,8I,^LV<[S4'B(P>I41AE'V8,EJP=]N8Y.B#9.)=+OTCM
M5DZVX&9_N%M2[*G[: G>1G<?V4>*)9HDV[3Z>!A^T*Q).86XF139W]9 %>WW
M9JN\A0J]5$FOV]PEV)%WNC'MO*_<V/D\3ZTYV:QBL4VO(:6=9L9&JW+(; Z[
MRW&46]K$[RFF%SJ80^:\XRD,NW.H&]IF7R.:$4ZJU8:@+(5W*Q,O:XI@[BFJ
MV@-1?]4BV*@"].L!HAKE2N*OS%ME5JQ&D5H^_&R>H+<RSEDN41"CY9BXJ'PG
MS3CT\(I.0QES2'575YSM2GY<:L"(W\D.M<IOS-8U#G(!(&!V%R6H2-,-I[0Y
MZ1Q;^LYD1SR>LFFT&8RYXH[?0DWL4U0QU6@4+\]BF>\J$R:LS&O.!):M;LU&
M8-@,*/"9Z24R8AX:#2:Y-)9K+2=":EITADA881; 'T#85VBC9L':J^\6J2.E
MQ2;>$J^+F9,G1R-5#B;3!.(5T^MEHV%IQ\@&<:92J^Z.\13HCZFK4@=23D4@
MQRZ"DC(1*+,"K6UL^W%E8$=UN-5\'1T9A,%B4-^$HT&Z#2[K'NLI&M4 $$4;
M> !WJ],DZII:FXX>&Q4=>K*+,5Z8AX\4CO,-H]^$7Q=.<F@3PB:N86=Q6_%%
M<H3$.,"(F"DF*#=MLAZD*,NJ']"93-QQLF@(JB,JG!O-A<2QNM#<M'R9)Z!&
MR=YSU1V+&R0^)!*7\-\\56T8/# G4&0L49]FUY%J7COUZ/9&,BP.OY/!.3V"
ML\'</6).M:.6D?'"US?-PREF?#%:BJF[XU &8>D2YG)"IC42LT'8/2&,54[9
MJ7VE/[OMXU(IE%/*:)FH(;05\Q "8\"NPCZ-YC+&*\NXN@@X)3T$Y<?'<<+
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
MB-SU)R_UO;]H2>1P N>KB^]Z/L2I;.KFO,797^_!H%BZ\,BDI7[XP1L[ATL
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
MD$"R*T6M1Y]_/WF[USEP0#.$$P83%_["EOPY".Z0\'$$.I_GRBN'B,??>1<
M8+5'XB4*RB0A8/4+@";2L:F=SI \(^*((3 R'U@)[OB =RR)AB@"$ %4$-*C
ML)CF=Z"R 7M$::<QHPD\C&< [&"2LCZ;(]9$"+M*XH@^113G\)N8](8@\G/$
M#9%-I_T*/B#I2IA*6?F\<G ("-P >J:S0EM(H  E5(QA5Y>$61#N>2CO*8]?
M09@!&KW,0SH%P)!"(O\-ZB%=FS<WG&&TG7U!ZVPU7H<L#N=>-K'1R'G9Z5;0
MO(2+NO( -I$A)X4/YQ'L9\94AYIQB"A&(8//@8RX0E3U*M8$L49,F-D86U;?
M0%T&'BH C?&5T!(?UO6DEIA'((R!VN)DB5- D.Y"O'_X%LG6]*9PD@7PKS0&
MK@=W?4)FA5)J"\Z%*L[J)2=MP=0KB.96^1D?LV!FQ#Q-+H/WQ7P7(.8BF+"2
M8=YA_KVZ8H769,J]*R13IOZAR5?H8$#\H!C195J"7$A1D\$G)1.;H(TAP&RC
M&XJHFB5\&TCQF\S!",)_:4&J9!TI!-X$=* $/E7RD-<&[J8M*HO?2G1I)36]
M2D'=IM\<F+_!_8-"CZ>&#2:X.[J^\'+<AF+,AC[&HD'N!BDCF@4H<UA@HT(
MS ,.$:<20]B1'S=%BOEWT.88SX%$ 8HM">5IF"/M6B?0G)1^C"3G5BMH^&9@
M2>4U4'2AO&"Z UXCE/5L:-B 'FGU@NH-+$ER1#4"B]:&>YE'4^\"R!Z/.POC
M,:JMP%MC$!3(8_F8%F$5YY,X![AFQIM1:B&G90[)7^#+X,)JU)EH)5J(/+AQ
M>+50;XSVR*D!#X%\MC0\5+V(RR_S,? [9RZ\$# +ZDG.+X'[JK8/<BY&G,"-
M-<$K%<XTC<&N0IHDVJ!S1)[$:6$:%!I9^6X9.F$B=[O,$08QRZH"BB%IYUK0
M:O2 58D??OV6 "=";M,=V%16D'0E@:%O-$7M#JV%3.T=*'YAGM?SX9(#(3#1
MK9[<LKU-:2:BBP#D*A(+0I!^)2')4IXT4I3#8+Y((.$A@(NP$4,:FP,&!GR'
M3)!="R^[P#SD_4/;@^XIRG=@3'LLU14#P>,!%\1SSSRE>+*A!127PDG%/ [1
MLBRL+[+:Z8;,8EPGY$?)8)'. 7*%);D@GX#X/O?0\7?!QL E "H"\R9!OIM(
MEQ, (Q%HTJ WC119U%S@]X!ST%%2R9*1LAS4W>)$VR_(3IPOH&\Y)\Z><P+\
MBKU@'>E$"U+G,(I0MIV2JP^IYQWH*$ZGO?<;GT4Y]<#<4DCB;>%QD$I"#\"<
M@ZYC&$DY:-4._HINSO4N#.",WC=X.8#;2Y7JB(*!_(OV1O#4H1<L4GI!#!=1
M8@<VD^;C5( TC1!Q8-,'F]US#-F0N#*\(9Y(ED9\J_#"H0,!3FA^('U"J$B:
M+B&'AKD5NZ?CEQQ2=**=<Q!7JVO'_^?XZ.OYR>_'SN??CT]_/SG^8^<VOL:S
M'<\B\1UHAI4J)(^7TM]H>*JES_$5"6/MXXL7H-@CMX'WI8;NI=P/('T34@#
M.%"TNHC1E$N8WQM6E.(EMI6F]9:6\X<@HO!(/<*GI10$!0O],@F^8(&J3 2\
M+*"[;NM>.$J1[4'<6RK$-R1K$ ^P +%=H%F2TOBTLN: *WC ?WT4V2BXX26%
M%@3L+$%+2:JSIBF#XEE[K&#W)Y'61:3F2&:O]*:QZ(?;(ATP@B3;AA.Y5AC!
M"]/864MO3W(@Y<'Z@93-;,D=G<WX9&=+[H 8F(E(L&F@6-+X2K)6Y+5DAXM(
MQSO0448!3U($R0O)&F>6L,=0F[K$8X$%:Q_1&V<>7Z+ORU7/Z%=Z$]#H(M0:
MT,<8HN@ 7AV!CO6"Q$><D0.;'\9'0#I@*":(_93L7F0Y_NZI#-4@_VBS=M P
M\Y3U4,^Y\-#-0K[!PCD&*B"&PPS'2Y"2;"(5;@*"'-Y.RC*&7A>(('1J:]<M
MZ6KH=2/%3(H2\D>:0M>UY)\.MK6<WX,$G3OP,D'N"-.#3EXTM0CJ>K #=BL
M(0FTD8L5V46IA"V0&<K364G2N5K,HQ6/7MF)-'W(&/*<<1)[/L4LV;.C/)!*
M)%>#T#0."P>D>[W#<B%\&HXJ7?U(NV S@MV=HQEA_*J0T-,XYJ#:&.$%HL:P
M]D CJ F5GAK7#76.*P'6,(7ZG;=B(A9CD;"EU.NX3K?=[?(UA:^?=]QV>^@"
MSX3_MLGZY2M*P >5AZUC1%#O!6L^\/L.VS#ZVTL@9Q^5HXB3)Q(A=#!'VG"O
MG9?!*T#A)7H-U':5(J4QJZC@RB6KECS7::8BO7#K\.6<RB#=7TIE36%I&05E
M?S?:OZ3Z%JYO%2\C)SL9,P9)@M:4C-$6^CY!GC;QEMZ$/-IY &_)EQ@94.X*
MY?T'"ST(V'MGNGX*;\9FYY+#?Y.70\)$FO6!6M8.EOTKA[LWDBB\>>0,X'<2
M^<!FTL!3MJH/\$WB*V1)$G#> OF[\E@R4V*+(L9H<; (B#@H!E<X9*=Y. V
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
M-]66.,[U\#5[EN-6,SVEQG^'0VU=GFHK_)L/M55O-,G'&G*,DN@'IQT78_*
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
M,Z5KZ&X2W;JPE:.*BZ*Y"$4%X$P8%!B.V/>KYLWPU2U8#%_.98[PG7N)?XG
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
ME\J]JNLJ67A2*"9/C VCL-0IJO2J!"3^A!-[, H1YZK@$A;.%YSRI;B12O=
MSV0<$2,N@DJ3()GD"P"AU#^XA%O1%",:^_1PYQ$/2129K538"BAZXSAG^%%"
M&WY))6\&^-97D2(3A=WYF#<$',]#;BI5'CH4#[%+K3XD!ET9F$V,8U[!R[X)
M+H",)\"D>4D.YE"R$OT%FBZ1+*P48C2%4T(4$. E(>(1IV_I.J74I":&)3\A
M4:LQ@ 5 )H#ELK*QB*[Z1CCPB\RLG"+^5-3"RDA42<LR,QGT "[SXL'=IWI;
M>3_H)SE'_,SF0NNNB!:3UCWD6MQK&,ON*6'5<N543AP[!0M[%@76G(0-.Q_^
M?&E2KF6%W?^'4,T'JF#)AP5E )N-?(PSPA*^SN-V7AZ>';URAFU0*Z72I^!#
M5^!(YDZEO-Z1GBVG]+YSDCF<^\PL'PD&%L4UJ6([+O9J;14Y=\2%XSB"<AE,
M9&L>,D^G' H!G6@1H'A#.X$37M5(2[0JU794]CSQ<5XQ$=-0J"5MWPW\LNB[
MI0!J&*MC'+&7!2HC0+<]8MLI3L7J;C9,'-LM&OI8B$M*<#*9@F(# !T0];Y
M4XN-?>JZP< U!C(J82.QZW.7/,EU#8, @;Y'D9\IIDJKO&B*D9 ?TZ33&_QN
MK1(0P[7&95!:LY9O]%J::)*FA&H^)#/*91S(KA_H)L&D$4TFZJ5(TK D\T$K
M]*XUN&UWCR(,\T 2(G 4GOC/<1!IOFL-CM2$SYORJI)8X\ANMU?DQ?%AL>U)
MHK,N])ED%IW:(R:; %%E0N?"%Y=."7*S[YGY6VF(E4$&]SNDO//*;7OP I(W
MZW:OS$(;>.8>;%9@)FP$D9]C2K*=(*2X0HY[%L@I$J":B6JE,4,?SB0U?ER;
M&Z[Y]PTN$O6QT==8QEKMVT \8>U-*+7H6/-3G0L-L(C)&<I.(/,6RI=[LT0(
M?X]\VVKGGFZ;I[S=5(Q06"=8=:.J9(I3SDG?,I1%-D1XHY7DIM\!"BYR?F0L
MI;1NO3PZZVD'&9@>D1.*&59]H_#@Z/L<C+T)V^S ;U,C<LU"1 'G"E_&78DR
MZPV:K_@"F37I7W@Y9=F0V3$R2+^IJC)**2+=[3)2K2&57"U?V3@"H!"D)3[I
MQIET%*_C!W9/*.N&VC2E$\_9 TW-C60N?=%$L9G;:4?G]YOH_"YLI8G.;Q.=
MWP'1=Q(973BTIP,-@X*/$\/6I2&2!2KA*'PI'#BT9;B$$[N-<0[:"L!(:T1H
MD]M,58[57E*132)0V"D%C,JXU"QMLG[8NTPQG4K6;^=[GDQO(DU)3L8A*Y@4
M;BGL%HK,D.A4PB&I4.DJ#,NRB"[7Q)H"F@159&B(!80Q6Y6<3AZF/]#)JN'/
MZIY =4TYN;"56.91V:!\@[8NTR+0CE9%6/7N[?2YGQL++_4.VRH4O@/7T(XG
MV\7HU6TIC CIIA9E17WD<-1U]T=%SG<J5I[U$M/#FQG-N61)%$;A 4BHG92[
MZ+E.)+BQI/?=M3SFE&0YCT/LMRVW3S658&MXRC-+1IT BDPQ8J7:A>'*KT!?
MB[@C:"K*FS7T.[2)./,[%'MP/_:H.KQXOARSWP;&&P'+T7T\M $5W#$GJ S=
M?:YE*(<=X:KAC_!)E]-)9PG^JK2*U?"R.W('7+AAM$!_WNFZHPYGC-(Z9,;1
M#G1T>$JMSJD1*O8:-(/7G)O:Z;O[7$^W<0W5$W]UF99C^$>*8!^7AW-[9T#]
M*OK@BVD>AK+W&ZJ]P.:O',KEX6K^K;RC.W!WC?-+-TI*:08K-U$Y MCS5J8:
M#6_+QP*V#H<N^"'*E%CI*RL[3_R5DTQ0QE*0ICEZ)OY@UQ0(NGC)S8BU+ULU
M'*?0N5Q%76?#0:1\@2DUSE$)>W .DD-LV6HW064PQE6D483H=#1(!UXPJV?B
MI1Q=T=N2;OXB\-MRCLR=8@"H#&K=R=^,%_ ]Y[QLV=>_+@YXJEO<^Y6BED=5
MTXIW^X:L\<);G0M4,R7F-IZ,+9JM.G3W%^HECB8]?8G]RU/GY;/3LZ_ILU>F
MP\I4/]?^[ O_SF)C9(>G2Z1Z-05BQ;6+N0=+2D=SBAZQU(&:G:A\P]3C1IM+
M=2K9>T]5,LDB"S^FYOBQ:UXZ)\HI1:.RELJZAMJ_A\WW,(<BHP$K1A=;'_1#
MZ>CE,F#4:^GZJ2(F+*;:7-"F(N>$)\>G<0+G*Z=$P+)B*9E9:33)';U:R3?6
M=A%]>@=E'J*+):JV2X2 _%:& %=FL.B>I<H2X-8SM/."J^&)@?=-9$>B/.4Z
MO(]H'SI'7A+&H-!0OZ*"8' 0AN+(,K%FK/*;D5S@V71ZI6AI\^MAG66NID P
MJ2*%,<#J(E+/BQ!LZ7(9$8P\K4A?D+F[9IR9$M#EM >BAHL8H<_U@477!Z!1
ME_R!>U,PTK@G);;_0!^[\9PN)**&P2XRAZD(.!)-*6*J>Y4D,E/4LA)4WA\0
MC+X7AO TK[49<<;9"!Y%Y!7V=7(]WNF$Z?NP:$COXGPE]8R,R^&CU5%Y5%
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
M3U(!ST=9 @^D;YQY?"E 5KA.@%\&J1-/Z"V^6_UK)Z=QWU<@@F 7RSC-$]C
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
M3C)8+  L)@_J""F*PE,DK$SQ46J0HT$B%PJJ6-"L, 6 !:USMJK9)Q4F*/G
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
M$XYZ$Y#1RB3YTLA*QY$),;HHH^>45 J_\B:Y?$+FC2?""K 'N 00(U8CQ[A
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
MW9,^((^\9"*?G[2(ZYC$UQ!ZZ%?DH9/ 3^L6#16!]H= NT=<.N&(=9(CV&'
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
ML.7"!,;U!+;4$2XK?+AL!?8T@_^?Q8O=S)\,GE]W&.]F$;YCEO?*R<4!Y9O
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
M5 "F;2N=68ZU3(L#NKVZ0\'BJ\HMUXJ3%+YV,5YA;UN5,+#C,L \%S"'.^[
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
M;;2?<CXF^B$V3C<9CP;2;C*6-<(AR[+Q\/T2FM<@YO#N;'!YZ1MK@1NLAHU
MH<?K7O2F3>IE>8F"'EEHYC"/? Z)U0L>DZH"$\8\!Y\6NG"LJP20F&$ WN=;
M.,0LW_ +4WCKN=I;#]O6KYFCL>S&P@FUEACS\&&U)&AW*ZW"&TVHQDW!I&S*
M_0JRW^)M55AFMX1C# NMBD*8\[VV5L1%E<RW0G(Z@6FRJI?NJ$>V;0Q5J: Z
MC:51>S#U]RGV#KP1*3<XS,O&:=['+TE26J-#?:#QLC<7_#ENA'7^Q+#.!IHI
MC48GRR-5[>SO11-TV@S_.>#CQ="?$P,3EUIU2V"RK?]V+ZP)[RQACU=1*QD<
M':D*GN5?JKP+=^%9)^[-+VMCE,A^LT=-W6G1*E:;VF*VJ.X5@=A\PJ-QM^]"
MVQ!RBV=M<]6<H8<_J6H\W 6LP^%'.!.'%+B*+J8^0\\ 8<\AA1B-Y>VQ6V%#
M*J7H%UZG$%8;,$>0HQ6+&X]LFUF[KJFN*JG:B9((U0RR$J/\HZD1HA.@+UQ@
M%7]%O8<2?BSE;&+5EZU;<3T-/ HO&$F??7O3"CSO4ID#:-9KF0ZJRU?31J4W
MV)XUHIYK?&/XSD3LFWB2J[9U0^B^N6=U6*!2KJ8U14,,.&(%.6Y0K5U7HHF>
MSB8C;[=O]_[/^ K/L^\$ RHE) CX;[LDRR:9(A8BK^WI>CQ>CWB_[BKWX[LE
M#%>ER2*YV!S2:TN*9B+X:S")1]40,!>@C6(\'(QKO$<@A@4KL[+5K /2LA4J
M\&CLFMP@40>K74,HX!Q,2_H*;[691.>U@G="=8$U"<:Q K?L>N5T,7<6SG<\
MNW12Q<>;JGQ;-4!P\ZJR 5YFE8+C'"/#N &B=&*S]G/7B/P?:'SLMJ^4%FP/
M+]I61%0VT#1QEV@KN08[QSCL\F5^=JM;6]7SK0%^6B%CF1P@6#0Z[1@8L48*
MOL+@PO>]WG,&T72)TV:)L^HLCI9-P[!I$*"QG!UB7\M5KCY<4VG]0')]V[BX
M]-?B?_N+RUUW<;DJ^H=&W#M_<;F!E+LDP\ 'G>O63:YLY-ZF<)5<@+]:"/RU
MO;Q6/U:TB%#5589*)<)]5[ZY3G]F,CXBB'D(E?Z=79KN["9Z=;UD0 QGFU2X
MGLD!Z/<NSZY+HQDOQ[8MHJ].Q<X3I2MHN3*Y%?#RJIM5WU>F-N\.VC$T[,51
M5(QI=V%NDZH>['8E/CSB]4:_O;9FAP@/SF=-!+16'2-;<]$$NS;&A6CN";]G
M1/0AY-0,+X+98G/>FN2S^M&J4Q+FTIE:9J"L8<,KK<T'<[FDB*% /_/EF1J-
M0,:%ZSC4(M+RS CKAJW"):J'^V2#M"JV=H?3,]._I34\&H^V88PI!FJP@\6$
M7^2(%M]5FX,QGXFI G<[X-]0V6[@#P%-&6<(@\26L5K>RZU,U@C.S86.%S-%
MYOH*=[DBS5P1VN6*K,%4NER1K\\5N3/W8RZ'@Z>%#FB8,B$9#1,IXBA.HCQ)
M$LQ-CHJ5N2+KG?MQ*[N;.))10T[9F6NQII(=K[JT:T3/IW/7:&V%^[0,D/U1
MU>T3<^J-9],W2:>U-FWUR?6*R)LHJ .-BC9JV:S?@IE;"(-*85<=,OW]J(GA
MM%2;K<Q%;3_&$(:!3W$&K6Z8TS:S=FSM1:U7*&!W(6927BHDFWO:- V;FR_X
MBVA'VX)B'SA?<L&[)&EYWE!J3G#>3'+QX?J^N-[A@6EFB[N*>2=F9<OWWY>
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
M=-^H5C=&YW!W#O>&.-R;=;-ZAXXOO8R[[A3]-U/TT8*O'29YSB5+"'A9E-
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
M&"P9$3%&&$MH%"0Z3U&(Q%D_7>(3K2VB[Z:&979/$;^QB\DL$S]9*F)$ TE
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
M0B)Q-I=_73-%O2!V0>R"V,^U&'?QNC\W9)<LOD?$\RF7/-%1$VH<H+BNLOA
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
M <!% :3&3 #0"N>PU0:Y0"CB3BID?,(H^#P[S-H\RGIEC9 Z8[/3JN^7MK!
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
M33R7$?!#"F4LU]Q8Q1SGC J2)& +V]W(:(()*!(7L'(52+:ZH,H->_W3C?;
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
MPY>.+/R;KU/X29?IL?7/(\H[@D6O.U&%;DGJRF%,=U4^'D48Y[JH=C-SK@"
M/XA%"Q3;#_-#E@^W]^?N-B*F@+&$V &3E"G9J%^XB;IEOI45M("I/SR,)1;
M-']KQ=-\C7:O>XC:V<Y,EJX&7_#M46:]\^M:RVI5G  S VVU[7(LK7ZN)B_
MUN2OY#&!Z>G!^ERG=G@3YGX MRE7I34HKS@8Y._6BH[M@BDKKP-?S;?/$I-7
MWP.SMJWNQ>..8>W_!D4J+>1DZ/,"F&RK75XCPL/Z7K:5)8:< 5T<P!VS .4W
M^OE.5Q[#'\'" X_,SPE?'EQ<,,+CM+,4E_RW Y[&L'!GQ>E1RY><N-6?%</X
MW<<X?I#\+HRH/WYGLVA>9;3M0:_H1#L8]2<#OOSD]6&"M,V-M!QH:YB7.<2?
MSLE5303)!G/@LWA<9<_C@5W>?C!6/I@PP.76X"B&VA4?8#  ?2Z5"1;'9JD;
M#EHAEE\ME3B+;&O0Z]>*+(MCV0#A D4?FR,+,^>F,F$S//@\K9G<V\%1D=J]
MTZ+3"[$]%H5+3I9&0YBL+,6Q"Y,$J!)M9XPD\?M)[()@@0<PQIIL4<;+UAO,
M?P5&\:V5YQ:6\E((9V A0UXVB:WN^+FN <5$3WE&B9/>V"=Z-8:Q;_&?IZTP
M/)H&.ZY\:^*.XLNO6 <@-1K^^"MS;?Z7?7[&#;%(\)G9N?+WT<5!,B<PE<C!
M)'\%+@Z#?67;I_9LL/&/ZR@+@CBYN-";>0IGGW[)SVAN\(ACL ]9Z\KE?C4"
MU>KG3\&0[*H,I3CJ9WKV/ZV@@9X%;'!0D4OE=<(I1!:HH#C0& X4V(]2"T!-
MWV1F5_;^L*_G;-]XKE^79S7\X,T'/SVB%+$W>^\:.W^!;?OPQ]Z'K>;N7J-
M16.ON?.Q:.[!RXV/>[_O;F\U=[:+M[N-K<:;W:W?BX]->*&^TVA^7"2?,RH\
MYGW@ B0O= S$$4XET5A)\/^E3$0RG9-,5YD2@ V=V/%^'(S:PQ+SBVM#R%X@
M:GU'1ZT !/O5"R*Z.V<Y"-DXWF4@-C"6NCAPPC)KE$))$XTX]> $!JU0T)YH
M3;4%WWWC]9S9G"<'$_D"JS*$]0?#=BMWBBOBF-=<>?C1<!.%Y=&2E")-@L8R
M2( Q8QB5/TBJ?^Y7[5Z,;R_-^D4[WR=4KO*+?B$NIXWM]P?>"YF,I(A@$1!/
MN?#=Q82\Q8'IO$#);;PFIB846>P,38*;BQEP;;%;!#0'/@-,Y#CZ:^0'6&B_
MURDO>"W&^1./Z2(\6G[S(U!6ZP#T-XO?AV$SAV#+5S;^GK/*[ 0WIMPZ1!AK
MJ[0T(-.'[9X#PIL?I-<91[I"R52NC&K.^=@L%I]W4_L1XZS=^F%*1CK6R3'@
M7?+Q,E'N-KH8I0I41DIETIPFI8%"2Q)@W0E+/)!*%Y]$%S&,[H!R8#16&104
M 5T4IM1%C)A7*;'HL1:B;'>+U>+ 1.U6HA LW$R .=#!<@F C*ETW%+,O/..
MX*6*PNZ%KU:Z:I5DW$(R_ $WE"O-#4I12,1!<9$%\XTHH#>-PH Y3>"FU,P/
M@OQCS+F-<"3I;51&.<<B3X%J  FA>-1."V4$KW#B::2AL?WI($>C%>/ ZH(&
M5A>H0=I8AHS#3B8J?'0D;_DP37\@#6 %3_(&Y[?8/MLL=G/88FSI:C<S3#O=
MCT?V)(YW.<M(Q3@R>9BS71?$)F\E>< +A<'@E>1S)#@VAEKIX)D3IT$36@7?
MUTE@2>-XYX DPJ(S!"7B*>(J29!5&0 YN!6)6BTIW7C-N5K,,#-VV<O,OVE,
MW$[WXI]"NAXJ2?$EBLA><_\ >"E,NI8(^P@BPD3F/F#KI "[1[Q.B0*F4:I_
ML",S)L63F/(X.@\+,*;.H-4C/W8\;N.U&@(B$8@BEG&!!3A$SEBL""-1IR F
MDO)+P_>$.+2@5.P%RA>%>QX(IJ,'_H(D+QN\<8NT]P[1H+3E(&].V8W7>:H6
MFTMP&L?;0XNW)&Z)0II88'+!2ZP-9T$X;Y3%F  .*8PIK=C5TTC*WO;6 >'
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
MHQCA 5K=BS$-CXK_CFQ_"->&9\^:49P>Q?'[[:ELY_D%Y2C\6,8W9QJMS33
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
MXDF)V2%FL)P /6C X33$>DGA+F-P+;BI+Q%ZIN_C)<H!L@_&CM@XN#EIECJ
M&W5[';C2<!+"OS[@;#''^']AT*[<8N[IXO?QNT5^J!DB5R88YZ_E=!"86[BK
M!_<XY&N-AJUVZ[R\Q>PEX873S/BGT?,)$P9X'O5+9!A;GM K43OO!V3_^@0
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
MU?HT$!6;YD$Z]#[48,G-!K3X9&Y"%YW,?9LSY%<_ZK286CR'YUT<V/B]Y\?
M#WA[8>F+"_/_TWKEN\S$L^^/N1]MO]@!4QB*JVVD;G#P/;G7P?>K/"?W/4'[
M@=-[5Z;OV"J=_[[B\X2K(\)7])/5Q%83NUZ?K":VFMCU^F0UL=7$KM<G%TXL
MY6N2J%)>YU5K"/?P-^H??-$QOFCT\HD3 QA;&?NT@^+?,1SF(.F5P/NKV[#9
MM8@V_*""T;:Z@^)O[=Y@$ =_O]HBK=4M_*C?CSG;YR3VRYC$W9JEK<UDO.WU
MX=?I<_NSXA!F9SPY?W\(+_!7W_OE_MCJ;9G?-WGI3D^^YOE)V!@6",&:),6M
M)]8&;+3R20D;690+MQ%OMCT^W3_<ZUZ^UIBM1>N..BCTAFARR6>RCW[2JA_O
ML_U.XVO]W//]\Z^X_F[G?.]=':X#]][^RO;AW_KV46>_-7O$Z>X9C*NU3]_#
M9X^.]YKO3_>;=;A&G<%SXKUF.(9_3_?>?6G]=;[S_?=F_?H^NH\I6B(P$CH7
MMB8BD1&4(6\(ISX&8:W8>&UJFK+U2VJZBX8^<=WK,\39^Z8FK2'.WCO[B.A$
M'0:LU3'Q9*,S!$OOK))*&L)(B;-DBK.W2D.J</91</;3=9PEW*=$F$><XH2X
M2S2?\$>0YUQP6%JN";@[O$8E75+9;X5Z%>JMPB/_[1:P9S'')LCH!=$<.R";
M$CM%8PK6>6M<"7MX"GMX$>QE9QE^JO#OB?'/7\<_R8D34B1$+0N($YZ0=3&B
ME*RW*CDJ@MQX36B-83T'@',>[4I@WPT2,O/O6<!;W9$=4^8KV6<_3-Q[_2_7
M_\?K'V:M3;2+YWRRD]Z@E2_\JA_;I21/TL@FA./*MR9S@2^_8MV@UQX-?_R5
MN=W;F^-&L]7)X:MX6GSH=6SW?BF&0EV?BZM_Y^&.-5(SQL 9Q4%%+I77":<0
M6:""XD!C."!";4R_=721/G%B#R-R_6B_(IO@$5_9]JD]&VS\XWJB8*L['9+0
MFWGB9^=LR3-C;C Q8W$%A.J-(UZOQCF4K3)N:E=E*,51/T/[__QZ@6!YFF6N
M92\5;[)5*#.([+PB_%1+'BEP4@KFF[UWC9V_BC=['_[8^[#5W-UK%*AH[#5W
M/A;-/7BY\7'O]]WMK>;.=O%VM['5>+.[]7OQL0DOU'<:S8^+I'IQ=JI\S#S?
MQ<^:'ZL@_%7QP%GF'^*WV!W%M_U>)PM!-@&?6\.C-_#(/;CCZB2/^XDA/CD&
M0WG<Z+P]WF^^;7W9WL=?CAMPK?;1ESR&=^_Y'KP&WQ7UUDSR>*=QM-^IT_W/
MC:/ZY_]\;1Q_@-_@\Y_?=KYL'\*]#GGC^#V,\^L9&%56;_H#ZATF)M><L=Q
MB+J(;% <&09$"11+1VG'I IL3@Q;F<\0YQ5Q*0:L%;@?T6KXE&2*\H"C-'@V
MV7RR!,6'<80]*_2\9;LJNC-6;KPRO[[K]5$:FQNI">/A,]P';;10@?' >03*
M$/'&0]<W;+<&]O PY[#GA]A+DVDH,>EEB]W[ YA0264P*  [1URG?'0;MB@(
M3:,,3O@4;EBS($O/[_$*%)I'<5(84!8FC+/Y1QT8$5QD4(3+58^AZ$]$OW6E
MJL&=%8>Q=]BW)T<@=1:X0N'L #X\+4^80-/_#4 D1P!99V7-0Z_3\BVXUUV*
M$1;FSJU1+8(DFY3(=4EMQYN2/42%@Z9WFX(G&>R#S>R-RS$>.Q_C%@FOMTE
M7ZT<V'OGF=\\QO< #4;N<XTU.DAZR8GO+W,2EYP5?YL)>.DSC&\PPP\*Y6N<
MR+-5.C-V*>E*=]Q669<>%\M-V%GY%A;W3M9Q"CO-E*;&"2ZDU<8DG#0A'B<A
M1+AULLXO8C,[WWU[E&<OM[*#/Z%IOZ_+MLK=W.K)MLK1EV9N?_&EU>C\>;3W
M;@?>WV+[QUND<0S7[,#KGW?.ZIU/8JX-1N=M.[_7Z.S2+Y]W^'X3W.[MT*IO
M?Z+U#KCCG5VRW]P]^]+\NO!$=2J8T#9$%(6AB&.MP2U7&B4);TAK9,IQ$V9P
M3:BUS]]Y^IY#+PMNE[N#O?)P>^^<'1NU8!+^1X+E(6)-?"1,B1A$5(S$6^?L
M5'#[Q' [VUO4*L4DDPHYCUWN_Q:1,3:@R()AD6C.%-]XS9FH47KOQD,5^%7@
MMS[@YTRD3E# .N>XB$E[*2T' NJD99S:&V3N5."W6N WPS4Y8)Y),2$N<O-+
M1Q6RQ.3MQQ0]TRPDXX!K$ES#"SK<KQ7X/7*L8I6*U7Z*!SNC?N\D/FA,\F?=
M8!;,TXH<]W1O5QVX(I54"L(!-2/VU@5FA0TD>$%QXI6KOE[P.7\F;TR,4&XX
M<D 2P56/(I\EAU%R/#=YUBJ,&U;RFN1KZ*HOQK"5:&B_GI!R;T:F2>0!VTA\
M<%P1;)TSU-E@K)=$R\H=73M(F75'B;$.C$5$'!@VXMI19+20B%@<-4Y&>)\
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
MOYU/8=Q67NY&P9'63",NLC%/VKM>_P]X[YS3,%[>'7IND-S]T?RPCW4TVCC
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
M*4Y 7C,>WI-C=28>$IS+_*5GU"?NA0%HQ$PDJ[2E)"I3X"$9X^'4T,H*#U<
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
MYE($'S@H9!6XQ!)S1C37P I3F;G0#]^Z>%\-J6.!JYKO>,D<[H&'6.I\QQ(
MH9\%0A<2<580I)-2N6PC1>61?.V)B#A0B46N]D',BR)MJX1Q2Y;O>,$AP*>"
MN'OF.VHBN"C\.YK%OZBQ"819E&3N2DZ"1P8#'#*?B;URBGAP6FE#BP>G0^JT
M[]+ X(+2(:O&]U8&"^MTR&( [\LLX&DGA0W>HD!S]^'H,+*Y,8=*.,%Z^B1R
MT26!'YP.J5G?$WBV_=BV66F*8>]Z?]/BK#4\SE?FK^QH>-SKM_+^^U^"\:V.
M5WNM(?,G6+#]<KTVKY:KYGX+W.MW-E7:X7SWW2$+.1.5@/-IFL#[)0PY;1@R
M( ^,<V.H%9G],?H0_[<F?G7NMD;(1\W=UCBY,)S\-@<G<UE.#=./'+!&Q*4B
MV4L&^0\J62] *E(N@=/ :C9;LLIQPF4#QY]/[M*?3%<]5@6()S]C-[\FT&UG
M[)YB6I:Q1M(]# ,S+"B1=) R<0&FP.>V\M1B2[PSPI<)\)^W!S6F+Q#3S^=Q
M7ZUYP(PA2> /'KA&1FK@OM@X[H3'T>LR!2ZY6KW29@M7UP=9HON6Q,C#D<M1
M 2"W6;#=\[*'A_IM\)T2 /"ONY4   OUMT<'&GRCL\0M(%,Z&W=#&KRB2+.8
M A<?^>[6CCA44D>:-$8N2N"!ACFDL7.(.N))"!A<YGQT1#2TE T\YP1)*0NW
M,!20C..6/RY:@\*W[6#02JT8*K\.;H$F\?IVR[I6NS4\7R^NR>?_N9MD+DHF
M?V[W5RV3"Y;)_2-VF,O-D60$ D0 F11@S#3F!FF;M)5&L,1B)9-8WR*3\[=#
M7LIC*3T@BD\H(!-R],=$V-_T^A^!^?>'MM6]GA!I]KICQ:A%YDXB<[+[[= Z
M'93/;:O D@#U81IIE30"OY;K1)BA+L,8;RB-YXO,G0"J!)GG1!6 OTE\[+AW
MUK4#VY]$68:][J7DA''K7+C<EJUS:U&ZFRAY=NB\TMX%@:RS'/%\5-PQC!%-
MT3A%@^1)EY$1>@OXY-7JAXD<7:Y/3NA<%ZK)&I5!SVJ5*OM714HS@'V/=5V!
M6)7]'L3"5;&$P5/SL1\GA*LR8W].QK[9#3OCE]KTOC^*H9;/N\AG<VN;'NK@
MJ =FAD0 F\BC3.#E68=P8 ICZI(,*6<X*#&W$[9G,'RU=#RZ=.S@0VE<<EQ8
MX/.6Y%YO%EG"@<^'B%DTFKJ8#6'#F-OH_ WJ5/GH$SY?BDY%I&!U3JM2IVV@
M[3M5,F;:L[RY5Z<L%#< IQ<(#\ 6</K\FUNR-E4>/*-CKQB3I&NW*O- ,33&
MP#?V$^ 1O5$[%"Y_TLX9IE".N#73$.'ZA0#/%8C:(HV&(QACM7]HO=C\40)J
M,K!;WJ$<'MROE>]SVAL"ZH,##Q_:8?E!_UHBZ_I;^.FWF/#6:M23]-F\]W+G
M.2/6[WT#S1C"TMQ+T1^8&+K)6G9;W59GU)FDR7>ZEXJ^78UU:Q3W>^^K-]SI
M3@IAUJI^%U4O:U,FD;S(QZ 9P0QQY2-RUG-D/;4*<R:XB"51P;=07E"MYQ,/
M^ZT6C\<3CR-RJ+AV#A.+9- >+ $7R"@!?V#L4F)624&S>(C;Q*/W-580W041
M*(9GL?TU%AV0B./!^LVJGOFGOBIR;:M@\K4 Z#C^R//.A F"OZIV.7V-XV*<
MXU3%M5^-X[OXZB?6#7IM0-E;?W(MM)I;Q\;^W2.K^ZT.X&XSGA7O>QW;?5B,
M5;*IV;GVYW'_JA[>$>@K"/\79!,,]I5MG]GSP=H_;T:/6]W)S85>SU,X_?8+
M?D?SP*+&_[++,I3BN)]AZ[]:03/& C8XJ,BE\CKA%"(+5% <: R'*M=BSBD$
M,,6Y%'+>O?6O?]J-F=*UU5QO_,OU_WG;EX^>U"M%[/7>V^;V7\7KO?=_[KW?
MW-_9:Q:H:.[M;W\H]O?@X^:'O3]VMC;WM[>*-SO-S>;KG<T_B@_[\,'N=G/_
MPSSYG%+A"D!IP,IGJ+"><$6(%APSX'_>8Z4-M96%@-_$L)DQV1L'<XIQ\N F
M"X=S(7T2K??!9^XYOSCRTE8+OQ:,+HZ!%X/'7C+7O#FI8T\R@07J=3+JMP:A
M5>UTR?0Y0^9',*-P9=[:DH/1.QGONL#C7A^WNK91LM+_UP/E+_^6MW:.M[!/
M_6[7#@;6'X_R1M!Q=*#BFKW^>?EPD/J27]ZO[8'SV$5EM$Q8< L+9$$;M%96
M1*F4(S^PY#,)W[OTW-L<OHF@FK;]8?("-RY>_7X("S+>8G?KR]DA3HXPJD@N
M-)Y#X"0!MV,8!1(4#I*0\A +H>NSF[K_._LREP)W/\'@@LI D@K24O@[=<X0
MD9*4Q@CG-'^,1LRU8-Q5,.">ARD EL*LEK7=<JDW"X0N:F22$B106"^=][?>
M(A;7X.=^@D%]2(Q2&PF+W!%IL.+>&;!.5@EJ?(T8SRH8._A0,P=K02(R0DC$
M"27(1?@#7#;+I74X80."06Y#C-(<-6#5P=[UJ[A+:9#6/ZP7J5J':[8'^-9I
MKS0^EU8(R--]P<8FK:,!*F8X#KEYJ#))N!""(EJJ&FR>5::^B$,+[J,*+B +
MW WQH TRN<*DM$)3(KB6-(/-;$_7_RZYRB 6H06+TH]E5J**I%W&VNQ7$*#,
MNEL@<7XX$;@X6<4'2-;3M.>\*5EO0'^ J-ZX8FO\]CGL5XO6I6B=')T?>IAT
M'KQ"8%3HN+$*)AP9+W%BVFB#]=K&[#:U')S-WCUXS\5IKY5/%.3=(=5NDV7L
M4UA+R4]*R<7VQ6$,GJ3()&(FG^7&%J,L&LBY0('L8,Q%6-N8M6BW2PGY&?;S
M'#W*:TFYNZ2\X[G*.SA,E"*/<[13@:08IS'"P<E O=:<XGFMX&Z7%+P.[G<7
M/L^G^<;^_S#V.V4(H,SA1-OOMKI'\(M^KU-&!=KQ"&A27J#A^27?!O^^W<[I
MG%:WC""TRL0,K&[W:QR,4URG_=[75HA%NP>+6J11M]S;ED=RU.^=#8\KJ9WS
M5 NW[N4TTU0<HGQFMS?\SG/7BYD8UG*VK?IT:WPD?Y1IPCE,RF!N<[=;SZ0\
M[I !! R,#AY\=%S"#LQ[)Z<*>Z>QW D2O\'#NE6HS9V7+U(FO;NP_._CU]@=
MQ>)#[']M^5C\?6WG_8>U?Y0B\-7V6[W1H*3B<<YYX"I(=#4G,!!UGX%,[C][
MYRS/\R0-/JZRD]<RP/GNF;K!<+;@8KA1F3Z^?D5UMCD4\&KPE- :*]YP=O15
MTIGH\6-NTLAN' +)'/A^'/LB3]WA;VUCO"%KO=@,H4Q5@$Z>-VZ\;&M0E('I
MZDTG"P[?=GK=LVC;P^-,<F]$^RYG RQ'-V_S@3<<]6&^4RM/6QI''^?,TPW<
M<K'=BCFI/#4<&^+_CNP8$<K<6I@\$6A[M2"5+ %R@$Q.L._J\&7>M52M6Y6O
M'B?*856NJ#W<<-2]^N>UWG.]4;\ %"K3U/"@S>[Y5?X;IJ'G6V7VOSKU?IP'
M7,Y<E9J_@6Z7J?X1P&Z[?,_68# JPZ(3(9M,97F/O!NY-]X\M3(8N//C36#S
MMCGD[0=/F..]3Y&0VW?]C#/ =:[W#FTJSYK[_MMA<)9I&1ER1.;@3VX @8-!
M6FNO$S4TZ-SCAL[?$=:XEX@\85G]6D06)2+T4',9K/ ,T6 (XL$DY*(W"+ND
MC;=*86]S&R1RBXC<=]?@ WVF6DR>04R.R"&GQ@IPK9&.@B/."0%,T0')!.N8
M92@RL;8!BC]_SPB8H2H4<^5JY]6=VB^X(C;WM1T<%Z>V%6:/9 ][0]N^YP&2
M1>V?FBC$I>3'P9\PR&:L#XS<3<Y/#LX.6=(^:,J18"Y;3*GSN3>/C-#)&!52
M<'1M0Z@&)K=LE+T4]2<TGK4,+$P&_/FAH%XE&1T*.!G$#>=5CT E# F."<$Y
MF$1N&IR)[\D >7+K6,O!PN3@B!\&$95D02,/,XVX3PEI23(U\E(&13DE( >,
M-:3YKAS@U3!LW]N^MS4YE 2B5&R6AY)*V9Z<6KQ><6ZR;>SJX/L"[-U-L?[@
MCV,8M>->F@P,QE4-"UC>M4&5^_?VX=&_MWO^RZ\MU.=[6UX<)JN]#"Z7@" 8
M<7 $D:-)YE-#-D5/%1,PW1%PX#3OG>V/YF_.&TOLD^^[*Z,899JD/%4QC)V\
MWZ!_?B.C7!X]'P[[+5>>OBC#XT<Y==QO#6(.;EZ>L;L6&[%74MV^$J#;CK"7
MU\T<)*X"*S8'Z=KMWMF@^'L9G^Z-X+7#X!^O[H(#MU:#&(ZKF8WW09?5+&#"
MV[ENUJO)7WZ;] %K=<L)+'_TV\T=E1EIILL;Y0=67X]W$ANSKK#*FXG'Q97&
M#Q[O,UXO]QE/%>>HOI-RG1MQZ]=XG=SZW?=N2_@ZR.9/W?;[WPG&'F>PZDZW
M_4$!JTEE$ISKDLQK 6=F+IU3A*G:^/Z898?TG:H.S9P?NU'FY8Y3\4A%INZV
M^WSZ/>]3P^9^[[0L:S:OIMC/".J2OO3\!9SIDO5"Z\QMS9XV?W6'Q7Y8[Z,[
MB,@/Y_,A][C_(%]^-=:=[M!VCUJ98I1BD'T7H.W=6/FL9<*MRM.5A05 6@9
M#GT^&/O"*JD^>[V\\B#DC&-SM4#EOU^7:U&6B/DP68A?HI(>;G::K;W]+V1W
M*W3 U<$'%P?BX.1SN_EIES<_O1.?][_0@_U=?-":KJ3WCA[0';&W__&L2;./
M__ZD>=)N-3L?R<'%$?F\U6[O[7\^WKUXWYK37_CBD&(5),VMY'@BB OND174
MY^[JX,QZPFT^6,NT;- Y>U^7OI#> HNR_B1*3F/Z@\'CR6N/SE^(N]<>G?=B
MRUA7^@G;9]9HN!QH>'X##<DAP%]46E D E6(LT21=8P!.%J5C! NZK"VP3%O
M"#J[O[)N,?)XROEAV/-?D"LW/^5S.[$[J+9GC;?_O+#>(,_.UR91Z1F0@K],
M/AOO.'A];3DVNV&R6>'#L>W'W_."7;_@=6]PQW1-#6)W ;%W<RA=,,X+;E'4
M/B N&<[GY#!RWA--(B=<Z7R2J6'D;+W[I6=T"VQ'LF@O?36AYMG)4 TU*P,U
MTWP))\((T"0D(P6H\=YEJ(E(2&93Q"X9)LOJM53-MB"J&U ^GOJ.3_Z6&;W+
MXQ.%!TUJ#0MO^_UST(LSVW]QK<*7ESCME<=$8+K^Z T&KZ\OP5:ODX\'^!JL
M%@=6'V=Y$0E,:RH48BEE7F1#WB5@$:'4!!V9E):O;>@&U7SU:-'R!;I6'$B6
MEQ;50/+$0#+->J(T5 5O$+52 9#0B"P-,;<7"X(:E1AGP'I( XO9D'D=)'K,
M?-_7V"UKMF3>TQ\?+1U7UZTC1$]$="Y7H8:AQ<'0P2R?,0PGE9Q'#A '<6L"
M,BIO@E3>!,$BM8%E/D/(ZG; JL,\+Y_/U'CQ.'@Q35MT5)%$QY!70%:XM@Q9
MX1V2BC,L4U1<IK4-U> /3VW5L9K[M$7M=4>#7.'#]SJ=UF!0E=//#*8J07$]
MW55':Y8MS;67UZA&KL4AEY]E.H%&Z0SS2)KH$(^ 7"X1C;15X&T)8[EQ:QL"
MF,XL<BT]TZDC-[\,TZE!Y1E!99H.64<]]]BCH/.I:&$3TLQ:Y+WQ- 03$\M5
M&1LT]SBH@SA/N'O_M!]]Z^?ISO+Z8,].=\I]AU=--V< JIK[<NIK]%D<^AS-
M4II<7\1R)9%/"= G"(H,+!WBS%&ND^"$A-S9CI#9Q/G24YHZ>//2*$T-',\%
M'-.TA1J'!3,.":8)XMPE9*6FR%LOE4I2,:FS+\3,;*G@.HKSB#MNJAK&99'.
MWB1#6[1[H![U'IOGWV,S7IX:?^Z%/U]FB8LD$1/') HT>,0USPFGH/*!L1C!
M! 2L,>#/K,^T]*RE#L2\--92X\33X<0T3^$L.<F21HDEP F+(])*&N0YP8)H
M$82U:QNJWB'SI,KWVIZVAO#HB\O:UN__QW9.?]N:G*/Z.:ZRO)[3LW.5^4<]
M;Z[#7LH]?VW?'V]VPU;\&MN]TUS1?!PDOF,GX!JJ[@)5VV<E3%6TYMON"<#5
MV:'$D@;%;7:E<B58&I$3V"!"O.84/"LI<PM"V="Z#L?4X9AG)S:+!Y74^A8#
MNHC]7HTG]\:3W1MXTGQWZ&'16*(<20R@PK472 =%D=7*)"\(DYAD-=9@.'ZK
MPS1/J*1E9K6.QSP%QRFG^BIF7).8!8+.MSDD)BI&A#8*18,#XE%[9(#/P!]8
M1PJV)6A6'L8D> 7/?=?1F5^#Q-2H\:BH,4-5:'(Q&JT1X[G)=O 262XL3#$C
MG ?#+.-K&Z:!Z0O<!K-L[&0_M]JXJN1\5;_R(5&96RM#+B,J+2F7R6T9_WVM
M%:!M-^,P!Y#?]GN#.CZS2) ZGT-MC%0T8>J1U@P#M9$):6$=,CZ8B*U5,M&U
M#2Y90\_9K;?TW.9>BKI"H9L[U:1=(O!94DI4@\]3@L\,0\+$*4 <A62T L '
M*^0TB\@S'J)*-GD<,_C@AB*SE2,6# 6+0H,%17J6C4#]Q[9'56K+YF85MNM_
MC4K.?U^&W3>7D[\YF?L:FQ:(31=SB)'*BXDC>&]!Q7'!4N,=<A[KI+B7#O-\
MB$'*V3S[/^K8RW(1C?LH\:-MC:F5^+&5>(9@B.A=T$(A(;1"W"F+K,<2><%<
M3"XOJ2D+.6B]'$K\T.C+G6NB/SR"\>35TN?;Y[M72[_?*R\C%UD&*G*M7=Z=
M^T/6"'8G!,-S:(B.6(1,/F(,&'%E(X*EE(AKF3R1!'NCP$42LD%7,?>T2O&9
MQXW)K%SSB7N_]3(2PV7@A36B/B:BSG!"<-PBIBZA("W@J*$$66$BLE8YI4CB
M)N6@DZ"+Z$3QQ$&GR4 F,LY+ %NT9WB'>_P8T!]R]V<8X0M-B]YHZ'>MD>V#
MNOHM2^.^7[0WW]N=/_9WR@5U=M :W.AU_/-M^AX<"UHY?W'>BRVC5_B4$>KI
M--J-YNG?7H_*CNK_[KG!IA^^;?><;5^UWOJC=P;7[)0]M&N6LT"6PZ;]QN;9
M(2;)<>,X$)QD$?=)YRW2%N&@"':&&FUS%0RC&X;.^HVK',!>/:#Z5=H /F44
MO@:JY02J&^[8Q>Z[PR"$UU9KE(PCB#O*D%:!(.V=]XX9R_/>:D950]'9NAO+
M&*0/K<%IVY[G<<;O8]M375D/^(D&_##_^REZEB^-<_;8_O=J[*IIQN&-3<FS
MI\3O&,>H$.H5@ZD,O5'NRSX9\HJ%I1?DM2UP6I;1YWLNEZ\B177H^M&YTL[,
M9NV]S<,4C,1!!,0(38@#&\[GT( P$>ML8HKP$/,Y--6@&J]>,G#AJKODGNA+
M@^X%^;$O!KJ?/>580_=S0?>4FWMVZ*,)BCB*%!8R'R%VR,JHD$_16!6X8=P#
M=%/>T'A1A9N>'TA+UO[/H86'PG]#Z^O&Y-6:HPZHC]_X%WPX>9&.[1^UNI/Q
M:M"F\2=Y@%.)EI/18-A*YXO6W/(^K\I:'_[[NDS+HD^7N1/0J^+#)'=2MABI
MHDK%55BI^*-WAN Z8/J5+N8?7:YI.3FSDY%?73[)JW_W17>Z!<7$-(KA<2QR
M:7W;/2\Z-L1Q^FA0#'M%:Y@33,/8[]KJ,,W-C%(11C%?UHY'K4&[.DO@SLL[
M;H_ZO=,(+_.QFS_MQR/;#U65S[.;-X$''=LA7#$8M8<PDS#U\+/RJ7X\K %@
M5:Z_E3]LMR/\#$9RFA_0'YZO%YN#PHY_?_-U^M%G?0CYAG8PZ.5*Z?"OV3.C
M^>9_NP^,8^-"(%@HSKG"R=!D-*?!!>\=E3S#.#'3,(Z_?W1I7$X/_GTI=I4T
MW@W*\8I"^>>_CK'O_*=K/YG17F>;'UQ\9+L7H;/W=N<<8+GS^=.VV.V\:7W>
M#R>[%SO? .9I\^(+_NOB(][;]Z2Y?P3WVL7-=X?<.*#)P*&U]Q%QP3FR*7($
M#%L92Z)/.F^M8ZHA,&Z 5LW <I:^G=P$$=3=Y2;I!0A"%JED6_WBJVV/2D',
MG\P5QDJ66X/"Q2SL_9A+#.6[ *@61!3GT?9!6@=%&I4*E"40!'14/GVP7KSI
M]SH@S* T65 _Y&[4@P+N/#C-"=ZOL9+O4A_.;$X$#RK-BJ'J@I2E?GSKJ]L6
MOFU;G4JU)B]G,Z:%K!O9V&0EAJ%D5(>+2B2#NY_:?JD9=\"]OZ^5.>JU?Q2=
M5K?5&77R[=:+_7LJXV2_PODS*^3CYA9^<4TE>^\.*0M$2&U0HB'G""1!E@>-
MJ),1>ZU2).#W,E%JZ5Q-;8! G0+HQVY9/#JK1;5-XIH 3MJ9EN)]=R5>+W9M
MUQ[%7 &LN&G.\RBRX+6ZU<&/&P9^;%]Y)C:GO4$K7_"J' )H[F]GK3 \GG@,
MUWXU)D?XZB?6 6\;#6__R37JX&,VE'=G#OL !(.B&<^*][V.[3Z,0T@^-3O7
M_CR^#)V?PE0B!U#X!= 8!OO*ML_L^6#MGS?9$5"C\<V%7L]3./WV"WY'<X=7
MK$A:R,A5+O<KH.2QGZ^"(=EE&4IQW,\@^%^MH!EC 1L<5.12>9UP"I$%*B@.
M-(9#L'[[)<B#^+_.^-G-Y3+LQ@QGK>9ZXU^N_\_;OGSTL&C%Q_?>-K?_*E[O
MO?]S[_WF_LY>LT!%<V]_^T.QOP<?-S_L_;&SM;F_O56\V6EN-E_O;/Y1?-B'
M#W:WF_L?YLGGE I76.R!.N" <?)!<N&P$2:1:+T/X.=I&M>6F,KG<K0>F'JF
MS1VP/C'?$OYZ"E"9^4MF\>,2045,J6(2%3["Q47\YMNCDIL#G?#]"!\!^^B4
M6\O&7.*2MDQX=H6?P',J9V']1T[/"GF 95&EXG(;978#*WY>$JQKS&!%'+W-
M(;R,CQT';\5(H\BY@=O<I'FN4;7@63Q2)J?YAWZF,G)_7#ZSG*-P54"S*I4<
M6J6CMU[\#HYBMYOOU>I>&TB>XTRRRE]GFE4 SRIBNP5&H63 ^:+>:?DP,.5C
M66Z?CSGNW9Y>[H>$^X");_4R%RYO$\;MS_]WU"I=4?OMU)X#WRZ?,WG-ROVW
MG5Y_F/\Q&,&C;MRZI/<I:U4O_Q>L7.Q62M,HM>;T%&0O V^C.!WU!R,+8X,'
M?!COVB2*3PC)3N5MMXOWXX[LKWOAQ^JU-*(V+R-Q:S3K<0?S(ZD_MB&S]5L:
MD<#B7ZMTGU?G29,MM(JSW]T! M_& &\. 4?#37)&&A^M8S)YA:EU\W.">!'5
M_VN79Y[+LPW?O\.[%T<7S8N#;\W]S8M#8&*>.X61Q897)_\<(0%A&Q,F1#,?
MW-H&T?,=GB52K08\/S.';"2 ,  *SJK+?817PZL+B4G07G$+KKO+-$52XBW1
MRH0?"._\<%IVW,NQW9#:,J12R^S=9/;=^2'F@GBG(B)!&,13LDBG&!##R4B2
M!%>*@"/8P.(V-SV;SJ?'S@FR+TI$'PM?YTMIC:WWDM,C=N@ +GP^_A=!FA#'
MSB%K#$/4.6.HE49YFGM$4L;GRNGJ4*R[\!I;1KFFBCME81H#]ZV$^4I=[JTA
MWH!V %)PXA3'21@>K?&",2&<)#+]K(;\;)&57UXM+C;/#YDR++C D5%<(*Y%
M0)HIC5+2($\J!D]3AF\MS?Q\2)G/R*F&;F^8UWO0"K%?151='.<WLF.S7GPX
M[HW:(8OB(%[*$%PS&K:J'$A.[$T""I435@EN%L;^UW@]*5 >8[MYI[/R[N4S
MP=D:5/>[YL^='<<<Z<BYEQ#!AP+7,0\S#[]T6<>W\:"HUP<%[]%+*?NYXY%5
M"C).@DR=H2Q3C: 6=]# .^O9P\R2TE@3#API>L\9F&C#,#5"BJ2H8LDLUBQ-
MFF34"G@'!3S?W?+TD 8',.@,&")"$0^:(@UJB 0'I]]ZAZ,79=$QH6_A3V?'
M+1"@LU:[#8)[U"HC(/';::M? 7H6/(H9'><[0(:[JV++/AVWVK%\@3E5G!N5
M4Y[F6;)&F;[,B 37CO+ORA#4942J472N$CC' %ZQNDD)"%>H=9EIK)!FSB!*
MO<TWF(:4"F@Z0-, '[[$=IGX[99#FD#.($YN,EZ[RVSP>K&3=T18?UQEKG(8
MM=?U[=&@'/M9A$<"'EX-VL?^T+;R;]KP(;R3[[?**&_&J7'L]AH E;U2U&^#
M NX\[/7S7IZ<VTJMX?B=&Y?A8/CX)(ZSQ# 1$W2^>7&>A'S[=NMK+"^[QA(:
M<YNX5K_IE9'4&_AVW4Q<XF6RK7:6ZJ/8C65$>C!*J>5;U0 CRH^KAG0])EWA
M_J"<KXX]KR:X#..5J!X'>9-2:W \3X!@88]@0@?#VY>^<2WP65HN?PS*$Z_%
M'R=OG>?NIBV"*9H(3/G]^EV2B!56_BB#0S1?^[YBFW+'ZM-E:'(RIB#FU7A'
MVXW-8%,,D<NH19)Y,P;7W%C%'.>,"I)DHIH=;F5CA0DFZ,IJW314V[:?P\>#
M/V/_ ZQ'W(>;_][N^2_/;&OVMMY-;$UK;_\ 'YR\:1W0S\=Y[R'<G^]]>@-V
MYWT'[HD/Z [>W0KMO0_3MF9'@'UI[7[Z]\GGSIN\]_#+Y_TC<? )[,[; QC_
M^Y.#DW=G,!;Q%Q"\O'T<2PZ6@R--%'@],DH@>@3^&1W165XP5A5C %F+83-;
M;.8%I\Y*9O,65)JLAX6PU!(AC(3_K8'J>'N:T\S]4024+A<;=&,3>!> :E%.
M_&!FV]\-$9^;8_OADS<>67H^^.,81NVXER8O-7XG>"#0N;U4O5J9(OV%)>N\
MN7DH< R1<HE$%. X.">1#B0B)FDR(8&/I]*TI-P"2.+1 .D66C%>6V3' CLH
M5Q7L1#^GKMI^5&T*R;NP>MDB#(J_E_C=&\%CP^ ?K^["GZJW*C?"7NWD*#??
MPMNU[>D@OIK\Y;?)^<)6MQQM^:/?;F9&<RIT^N1:9F?5U^.]$,:L*ZSR=HCQ
MN;GQ@\<[)=;+G1)3>XFK[X18QT+?^C5>)[=^][W;$KINE/RIVW[_.\'8+SY8
MMDXHO]-MGZB0T7T/5MQMZXM^P+&CRY<EXD%O6^VA>LR#)--O.?\(X $XU\5V
M-V?B)Q&&ZL49:=QX]X<>G5U$I:XEGL=L_G^JVM5+G:;Y2I5/&M73=)=IP@_3
MOM4H'/>['0#E/ILF3[[7Z0"!'W.HWF@(?G4WO\>CM-F:.>^W'#7H[WEDNYJL
MZ?S(S_@OWRL[^ET?9N]JH<J%78WC@#_K[%3' 4]/#CH?SYJ= ]R\>-_:V]K!
M>UO'X-AL\MW];7+0V8'__GZRN]4\_OQAZCA@I]GZO+])/Y^\8\VW<-W).[[W
MMMG:W3KZMKO_G];!"?SW[>[9+GW3_NMB9W(4<+BW_XXW]W</N8XQ$L%0XEPC
MKK!&3LH +E-0L=I/FG=V*-;@6*W>,>ZGJGE:M]U:] GDN4@DO20,<\>\91P[
MHI,ET;@@N4H 4+I$(C)!HCL40*Z1Z/F0Z/PF$CGI)$[YX!O1@$0L:*0U3B@&
M;+Q)06AK,Q+)!I_3_:_&A5\9%[0ADON  ^:>*VM=-)@'E8]"6*D$+W$!3W !
MU[BPQ+C0G&(HGC.>-WT@2FQ$/%B/-(T>$>ZT8X*00,*8H6BS*KCP0DN(;9=G
M=,HL8JL]*@_K#(8]_Z6P90[UEVC2MXR^U59>C1AFX&LSY-T3G97IP+X:&+8[
MXV6Q7%!48(&P\ 2X#4G(: M+ZJ5@6'/F& ,, V:S@GUSEJ_L\HKCRNIX2C6N
M/#&N3/E,@FH;=%3(40<^DZ<:F4 4(EJIB)EE,3<M!F8D'NPQU5J^A%K^-'Y/
MK>5/J^73'I FFGL<) HIER5G/K?_31)) :Z/ H2W1&0M)WB9M/R%)IO&RG!K
MNBEO'ZW^BO*>SJ\@^=WAXR2A'JM89^U)?2\&=!L:UABX. Q\-^-!86>Y NJ*
MHDF @3EC91,ER$1O;%#6*9]K5BJ>#P2MG@^U<,5>O8#URT&SU?'?:C1[(C2;
M\MN8,52%',X&_HZX"P(Y;S$"/PUCPY@.N>\G4:8!!'^Q,>T:6WYY;'FJ;%F-
M+4^!+=/>HDN$*T8UTH3EQ@R<(9V21S2IA+T,6+IQ'EV8V6CSJF++3U7W7I+3
MI!_*%%E5):PLWW4ZZOMC.XC%_?3:>8.E MH0@^817"#.F%=2,N*49#'\P .:
M.5N]V1VV)GF\#]&/^N51\NVRZ%X,N>!O/@<Y&I8'I?;2] FWS0Y(RAU#0\]]
MXOKISRJ5E?@M%XJ#\XNP2$ &$A?(I(01H3QYEZ)(7JYM\(8BHD$PGW/&^GX2
M$@/1&#BDMPY8I72:F40]QUK9B 'J?\ J:PEY6@EI@H08*2,'-!<R )J'2)%Q
MEB'!I. I,<,\ 0DQN3#X//DH:QC=3T:8QUQX T#B.!-)@T%PX&8G0@WPA!^Q
M@UI&GE1&<O%X8U4,02FD!089B>!7Y.XLR#EFJ>/@2H8219@B#6)FI>0R.IDN
M]\QGB]3(%5CM;*"S[.3=J XE7@MH7A7&S-!125X6D/(X^K@(?/N\4;C1L/IM
M+CE050&X*HDR.>0X+LYYN8LD']4?5S8YC?UJP(6+WHX&91V&\^J6%F0-37ZT
M7KR/@R&8_ARNK;:A9,G/%C;7QH01WT\Q+$^"YHBBU(%+$BR3CGH:D@,Y#$[4
MYG6)%&-7[&X>2B,#9UB"FQWSYG:=D!5$(&8$LPSHKV7@9E/9P&HV9GA?VVH-
M6.P$<,V]XU%(YSGG4:7H'%58RV>RK;^P!#0W#QT&LRFM10P3DL,K"6F;6QU1
M&BWQBEK"UC8DGNWF^S.FDW,=P$;2Q!/EVE-#A6>,T^ S1"15F\XEDH]W9[M'
MAT""HV "(,$J!@0<S)QV1J.,ZD($8Z/ .;6JZ6P8[L6:S7L*/:5):89YLHE[
M(6PPA"?MDF0X>,N?WZ< O]QGP3_K]<,@=G\Y2=_YMK?_Y6SW9!?&X<]VM]X=
M<D4# >XR:72>_4[ +)14(KEB1E+6W#>JZ%1,,F*-(R8<D^@H]98&R@3UA*LE
MH$>U'$S+@<@M_\"I1#$&@;@$\^BLM(BZH%.P(C%O[RL'B@0*-Q+.>\VY$6 /
MI=$21QND39@^OQ&LY6!:#J(#KP8[FA/KP):3#<C8Y)#!Q%$#:R<=$.5F;TYB
M_4<?%'^^__!Q7,(F?GN V;K%3N9B.-<>49;6NV[.OF>-[U3=[)=MD21N;Y%T
MGZIOZK+J6]U8J6ZLM)R-E9:H'B'%3U./\$,\RCMWW\?3W!NF>[35&OAV+]<D
M79[Z<7YB&$^:)_\^;M)WK%D:QYQ4_<(//L$SWW[\]OEDD^Y>@-';VN8'Y].&
M<9?N=K;9YRU/2^-X\H[M[1\??]X*8"#?Y,[+%[N?ML]V]X]/<A7<O?V/ATY:
M)SF.B*E\6 =(+=C! #.IC2'1^P ,9[HT850\&6FPI3)Q'IE)/*^(AID7V# Z
M77!N//M5<][8.^K;TV-8Y)UN15- F7^B2N$/!W&;H//GSX%>[[=952>M^A[=
MSCVK&5SL)M"=YIMI/9EL9J@4)2/E>.T&W^>42Q-7>6HE\A>'AFDM'-&("*O
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
MJ'$B;<K490!J#28W!LP:M8<5XVYU@?L?M:J8)#SA^BT!S/I'X Z45#R_VGV
M2')%',OY-@]_-=Q$87FT)*5(DZ"3\C:,X=+H84GU]Q%IYW)@>VGG<M35OLO+
M\]AOQP:[QJ+Y6/3E?/?LT'LADY$4$2P" D8BD',Q(6]Q8#JO3W*9?3>$(K>1
M[^\(6R/;/]!L4$L0M;8=AT+:O3.X!AS'DRHZ4O+V!)]>TXO+0$J.B=CK">'R
M1EF)CENG@RLGMOQEY9BNEU2N'<O'7;M/ T:+3C--&@RFOKCG$PIX@3A6D$I[
MKCCAO0UUE"I0&2F52>?"*AI,OR0!%H.PQ .I]>.9@N1;'P\I-SA895!0!!1$
MF%)!,&)>I<2BQUH [!,PU&J^L6[<2Q2"A8<)8)LZ6"X!)#&5CEN*F7?>$;Q0
M4=@!@Y. A@YC:5=JR;B'9'PYY(9RI;E!*0J)."@NRGM+$ 5(I5&8W!UO;4,T
M#+Y-,#+FW$<X$C@C41EP&EGD*5 -("$4C]IIH<QE:9,:)YY:&O;]H>(:O'JN
M$+B*&O% #=+&,F0<=C)1X:,K^XLP/3]:,;7M<)8KW[Y1?DQ<>:;-I[W*V7]5
MF;"O\;>S5A@>3X[%7/M5=3#A%;[ZB76#7GLTO/TGUSAYWHP0^W>GY/NM#ICQ
M)C#.][V.[3Z,G$LYY5=<^_/N67&*U55:_+@_>8E3>Q21ZT?[!=D$[_C*ML_L
M^6#MGS>]%2 2XS$)O9YG?GK2%CPUYH$YC'_991E*<=S/:/9?/UXAM;:Q7_JU
MP*=RQ"$'0?[U3[LQHPG57&_\R_7_>=N73[.OX?7>V^;V7^#3O?]S[_WF_LY>
MLT!%WNSPH=C?@X^;'_;^V-G:W-_>*M[L-#>;KW<V_R@^[,,'N]O-_0_SQ'J9
M-FS01]NPX8^ZWUZ]MD,[&/9[I\?+LC<##+V_^(-^/C_XY.7N16@U ?H/+HY/
M#BX.6//MN[/=?+9M?SN;"M:\:,+W\+R+[:_A[7]X^+]P#]K^ZDYZ%V!NP/2\
M@><T3YHG'L-X+PXZ[X_!M)"]+<]VX?O=DX\7N__1WW9/#L!4[<)[>;COYK?=
MS4/+F"(\)418KGOE-47&$HL$X5$20S))G=X"$;#U2H@@/7 $9[7#43/O2:1@
MH4#5IK=J_-$;C-VO_]_>MS"UK6SI_A45<V_-WE,TZ:?42N:FB@#)9D^P$W!V
M#KEU*]4O825^<&0[A/SZV]V2WX88,&!#GYD=P)*E?JSUK??JM]:FN46.QF]?
MN+8Y%SY6^O>@8Q:F(HS"]*4M>^G7V<GMJ9"Z]X85N?'I!R+*[!I&HN\C]><M
M47IEK,+=[9A>7L4U_3W:.)*_]%_JV>GG6:[<[>/XPE[WK&-^@NY%QYG*SM]Z
MUO$VYP\+B-VB-%][UB)MM88N.OL6_\;1'5'Y;7DY<@'.3\![%;U=:\=DWR&&
MN9#E )R]K@>J7^8.V+O*W("I06OAH[ES20+55[W3T!K3YZ4G_"2WB^7O=-D#
MP_0#MRK3\9BFFUVW^&Z'XU,<KIE"U[NNG'7OG^I&XS6K@?.2C@:Q'3GW>]_^
M%_EXMRBT-]JK.YP7PWFQ2PV],.<MT\E[S:GU'&];M:9NV.6V3@[;*M[=2!K3
M\1/PR27=J!#M\VAP;I\>N9K2*OWDRAEE+F)E?VW;.\_<0A5Y[_MV9'G)%#W+
M*%%O<'[>NG0^NKQ*%:ER32:6W:68*#NGY0HNUX C=WO>_>G<DU=3QL@U?1,S
MZE9B:I$9Y866#^4Z[/0-(L<2;#/"NX\AX%!M_SNI-3[9>7V\J#5.O_(T)D2*
M!% BF3MMA !I& =<9,H8%#,5TZW7E&\3DE[IA#QS^Q"UNH[]Q[5=$T['&Y$(
MDY)CR#.6,"JID1E1J;7I$QK'.!6L(I$8)F#XRV\L[0HZ+C\7>=_L6S0.Y+$,
M>5BU\RO!F",D(%!*NEH2(X P,@8ZY5Q1843BSMHER78<D\7DX:%]Z(>>$J=#
M2+^LI)^81'8K^K0Q[9)\FN*'%>A1Q_0M45E8_.4MDQ^B-?"2ZY<INC=S]:V<
MQKS?9NS2V2M#-H'.EJ"SGT?[1U^1%D8YWV["N0 4:N3BL@0HBJ&EO"PEJ=AZ
MS;<3> 4*39'9N=4;AH'["12JJ&]"PQKI:[T)#6P)=<T)^*Y7#,IXX,W]B2F5
M4&@E%>;0]1^P>@K/1(JYP)E.I)X5A!#BZREPK]OKUS/G,.SM=O2)*7[DRO1.
MNBU=M[I*TP@=J'$I:FQ\_&HMIB3FR !LK0] .<3 HB &C$!N,NJ:7+O @VMP
M<E5&RHCHM&D9NP'BS"F@EDI5MS=-E=V!A;K<963*0:DN>O_><KF[:Z LOIL4
M_AZIO<Y=&*O^EGR4=WJ#PN6&1^=5FE15@S.,ZRTR^,9?4J*P:G]QT\A>9K2
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
MF)YOP_J[+<@Z O9-VMF+Q,0&$:DUH<Z"0I GBO(DB;75Q93/J;REZA6TK-4
M]*\YEX>BQ'").(AU@JRU)"U IU;5XE;SLM:2L-;P-2Z/M4^X7"%_/E (\JY#
MO>7Q(@'+ Y9/] 9+$P*UIM2D,16$20L'6"*E4<HRDN*[87G [!MB]HR'"^'8
M6)%*0$:)._ -4R %@T"P3*:)Q$1CM/4:T_DDJH#7 :\#7C\]O);6F.:Q9!FB
MKL#.@H,T1FF32B+25.N@>Z\%CL]Z.!$1,4TLCD/,7*%3 GA&%4A58H5M3*T
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
MHF,)(=!P9.V S!D#4 -AL 1$,12K6 @+I4_(&%AGU+Q!="R@YN:@9BA?6&]
MG(F.29*IC",)&"8"4 H-L+JC ,Q0+6BJ+3K&*ZE?6+\#6=<[.@9#@5C(/UB(
ML!G5R!"L80(5Q=0=[J:E%%G"4BR8SAS"HC0@[&,@[.E<=,QP*EB64( SUP"7
M$P0$A]98SP226ADK%8FUSM<J_2"@34";D3YG\85ISHCFDMK)21:GFF*))(^5
MH8FW@N'0"KYS4#X4B*T&AF:C8"9#"4I2#&*:6CV/9#&0)-9 ITAE6C-K%*NM
MUS$,,!1@:,TC8('" H7=1P3L@25=B(#=6KC-1L"TY-Q@0H!"@@(*N3LQ51D0
M*QG'26J0)%:XD07"+12(A0*QYX:)ZPN)4R&P@(DW\SO,AKHDCF4J,P2XR3)
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
MZ(WHV4^[U8.J!;$SW_[M#*^8G1NX6R3CUD#TR^<N,2\/2:-%&<W%/D';'5H
M*(\/#4<CRO#^H>15+SKVR^K6\]"I81V[+A4'1FX#)I:KO-.2TH:PXGBRD2>?
MWGFWT\N=#I!9T#<]9_KEO:;C#;>S;9%;(9)W_-_:\K!3O//AFJC)-1D+E6*X
M)CO1Q.NF.'4Q[TPP]F@KEGY9)(<\X!Z3%:)M+KK%=\==<YOHGXY>^0MGA1_0
MV_$7>KU!R948(E*RFA]7.^_WC5>63MRJ=;V\K!=GHI/_\MPVFD3#ZK?:JK7E
MMWH]AT%_[-5/ZG\NQ0%K0"<C0.D.BBD\:4_OZ Q,W&T'+QR)S&#'OE&F+4U1
M:GT$;7L-92V!9->2AV4@+W&&"%+2P[$YRWM]C]P?!I;!5+0[5LC>YD7[*4)-
MXTZT<-WN>\J3QEB]UHKQ?BD/WQ56V8T:S6[1Z=O5?/_^P[:%L,CY4<Z-=Z;8
MIX^VX;S<A@F].+/;L.U>Z[:PY'^[=7E1C2FZ:.96!.:]2GNP=S@=/.^L)2GN
ME;Z1A>"W^61E58RFL CA2<#:/VH\VPD ^L^;D)M'KZ[RKB8]M(6\(+$ :'5*
M*_D*^ZPA0U\:43CUS-Y[!8GZ!_I1MBTYN6FW+B/AP<TIJE;8"CL-*R=ZW8Z5
MN9=1*_]N[(]^=_X+VW?#U9UH@A6CRCMFE\N^JC _<G.QI-(ZJ3B[;RP]@.U*
ME[BT8KG;COIYV[B7^Y]M\7WDRHN$_41'=N%,I^D>4NZ!Y<%I5<%KYEU[DQ_M
ME8*G=VF9O>VTCF[+[H.W#=RXY:"7N^=<S;DSKJ?GX?1#5SO]@OON";CO'E+^
M'!]\J!\WHOK;Z+"V?_#AP/Y3:T3'!^\.3QH'QP?[T8=/;]X?[DUZY-X>'A\]
MKBB]0A/NBL*;X?MY83&H6Y3X<]*T^-WLMNRV]:+'^M]>]ZQC?MH?Q7E%2%>N
MX)52^S?!CY5_[]X)$'*[:_5S:[0Z\Z6SO)C:$ 7H<Z7]#'5?)_J65W0\5LQ2
M3?2'L*9ZKR=4<] S_;ZSZT87__3TWAO(7JYS43B_W!_NG4[.8OAJ0NIB].K/
M&<4]&BI$VV/[7+F@J%V'L;MAI&Z7)O>]Q!_]<U[F?;MQ:HE5GE6;J]RA11Z#
MAPZ7;KT>^BA6YIL8[F7]I#[<R!UK.7CKOUNRTK3?=>@8<KJLW3JKK([45N]5
MLDAI]<6Q,7];PR_0SSW3C]OR37%*6>03K5YW"OY*\K-F?*%=7M,X F!IHZ.M
MZ!X1?N5Y&5+PA >F;FFQY]X3E<+^CT\=CZPGSA/0^W/$'A_V=NMOAOQ1\H-R
MS-;*M=_1,3E['T(9CIOV:U;D[1#5.5ROL"4GJ-[=Z;BP\D*4+WIK9&$-TLL(
MQ?X^8EGMY[GE.\<APF6967NUE6>Y8YBQ).PWNSVS<)174\"&RO\WHI?W_!)7
M\]\0$E_D-&M?Z[.?=-'?"F\K4G26L54!+ WY-PU#4'/QK>6-_I&CK,)FQZ5^
M9NZU-XNZU*_P6>U$=<\;U9+DK;Q_Z1;)>0=*AG#L,,4"*PDQ.([T +03.5 J
M[']7N!0GG8XC;/) XE>^= )5L5$[:FFF/);^&Y4\]2Z3"22Y O<^[9SL1)FQ
M=HGC\'$LM24N>J.8IC@_MV/UQJ./.OH+=J2#UK2R,!&+=7>,XK$3NL/PD7Y.
M.]&&\-EG#]VN9,CH\6XN+TO*R38\H(ZO5CM9NJ0N3'3>$N4"G9O"Y=N6:^_?
M9#>S*QW?CGV +N31&Q3^U4)V!\[G;%S)Y:WXV@53QEK:E4I:R4'#V5<,6XZL
M1(?(NR;\'"O[X29^/P\H0U]JD?>^EVLCQ@.Y,.*[!Q?ST_*)51I=$&4(3,/(
M4_4 ;7HN(=#+1+NDY87?0]149+ <DOW;C69[<G?<PWR<N^L7?2*J+5Q@V\OZ
M7'M.[EA!;<VEXG*(;2HOU*#M5LE>\* @32LW/RI:&%.8?>H/^Q#[S,F-EV-Q
M-=:XGYQ0WG<)#]XMZI>]E5NK98PW3\U.WXW4K05-[NC#$V"O5U%]*1\J\ED,
M&A; +0R-N,T2H*A$HEW>JV2_SRZQ'XEBE"NS4(_U^0$_JPF<#XIS"WV]18!Y
M9AFQ**,72IES![ 3,O'<6J8J/V\Y+KG3"I58U:N4VG.KA*NAF)K@7,]]?Z _
M'8][M*V$J$=&T_&CMC,NG"=6E[=[BV)B?;6Q7VQMNTD,G.7F)N9T)I$7]M?"
M9"TOG.U#^W8;>F4.?SD0G?>&@8"1Z'#X,S8+J@5X%?V!_[Q^<\LPQ]0;O.[@
M!NZ6N#<!2HY0C 6T_E([>X<]W*Y(2+C@JC+Y>;^<N'&=3"S<^3V8GJH?MC3N
M.6UA)]OMM!;J,F)@=[:8]%Y,Z,'EX@[]L;-KZ:[^07ZSGF-FL6MDA4>Y1(6/
M2MD1V5TW:KAL@\YP-'XAK) O-W4[&O2,#^9-[/3,<$:T76V\7RR[E"U=V;%C
M45A*LE$*RXWLM/7"OC=&";LTPX2XO.."MG;?)B!_^P;,[D*'G6Y_N%-^P?W^
M1$X+':].M-OJ=;?=OG\S:D0WCNC&*2SNDVF5P7)+-G"D6F79E9S5&\AO$UKW
M6'<914?=J*3EO[93RT;947(\]8FXM%,V\VK>WNZO8I;:N,1=?[,E%PO84WKG
M"-6Z4^J(>[&;OQUL<6U6W6WUA.EPRV,3TXO>BZBJHZL-VO89:N:T4QH;SK*8
M):F@G*8B(9)2@AG*X@QSLO"TT[)F3IO\Y:[3R[I%S7[PV.5NC8]5N=MY\_37
M=U9_]PE_:7\BIXWO\*C]=_.T\=8^\^CRM''&:M_^;M7:!Q?UO11^^5<3JO8_
M'?$Y'=3;;[_5&]_IE\:7]I>&;M8;'R]/VV^;1Y__^7;TZ^]F??\[/FI_PJ>-
M7?JO7Z?XZ-OWKR@3B%+( <XH=L>P(Y!"E@"6$!-3374FTJW7[XYW:XVH\5?]
MN-:HUUR"S;!PK=J59>GI08GG_@GG?5=Y8'F6Q'/V%2N8)!DA &K& -7<@%1C
M#!B7DBF=VO\G+HK:ZSMY.15EV@3Z&;I:R_2>H;_U:C?'LTP=P:NI%TM"O=A3
M2CA9@SS(LNSGS<NHWOCKX#@ZK+VM'Q_M-@[KM<<M^%G,1[5NQ]RZY K#M2RY
MVGLY45WG,H!VC_=]ND_]^.#P72WZ^]/QX<G^X9[;DQ.K7>PVH@_'!_^X=*'#
MVLF'@_+"FNT68GZW^M'NR(]^^WTCO]^W5W= ^A7LY(?=8[L;AX>WGV.\AK19
M273XLOQE__#8$EO]^&0[.OC7P=ZGQN$_!U'][=O#O0/WF2L7W*L??Z@?[S8.
MHG?U?PZ.7?7H4@6C:V"0'W;*?A_. )X-*DTGMLV5B<V'L"NO8>DFMP_MNYLF
M*_P.K4$^7-ZHUW2!!Q_8FHX'SL;A=.4>MJ_^4'1_7I;Q=^_O&<;*=SN=@6A%
M1\8,DYFF\O#* %K3M+RW_\B:R:32U]R8R]S]*K%IE+_OQFL%H/-/J.4*U-9@
M.R<3NETQA-#=TDEG/]5>/K^IDIR=H'9AKG)O^\U<]<HJ0N__M1MCVN>M[J5Q
MOKQ1B8/X(?*60[7M*!NZ)WP3T.VK8J@71EJMU5Y_\-X1U^A8%Q<7.\HGN]D?
M[1N.;*4:\H,OR]9KOP[15K51X+#SPU@3K(@FD "\<X10.L'WNVI0MBF;+A?P
M;G+M6:NJ$# ^J;(_VG/O7[-&<4>7[F07V2RB"Y'_F,*.WY.E?:PT%BRRJVH!
M]110F1%0=8= 5<9=O6_5@]-%WG,.N=D(^W BNHQMEOX]'P8?AKT/]MP<W#K4
M=D_V=S]:*.JJ[Q91BN^F'[U_OW?[TGB<KJ\L1)4L' O O?K1AX/:R4U4YL?&
MQNM$W9AFG+O5='JB/YG#L)1$0X\JT:HRHSN+M26IE>#UI59<4:OE5FM$-$ZC
M^N>:U=7^.OS@"@^LVM;8/:Q%;PYJ!U:)<VT^RNM>E3O:K>V^\ZU"_)_'!^^M
M6K<?G33J>__S5_W]OC46K9W8L+<_ :JOLH NH^Y%QQ)5,S^_&<7C)T'Q:[EM
M#5]BZ!KU^;"]]ZZ,4D3RB3V]MAYV',OLN:7L5?&DMFL(X067%XQEO&J8^SL6
M?;-[Z!-Q?&:-I8;^Y314NI2FWLOE[?%R2B,?9V%?ZOK6M<1YS[P<_O+*A4];
MXO)EWO%+Y+_TJGI6Y1AUFS5[DI7;N_)RY>Y+TYT$)L[C5QVI5;VX<@;N>&?@
M3$.]\AI.=F*27GD9[J KKUWW6,1WXI2N_K$[:;+ZP6*T@WARJ\=>?XT1LDZ#
M_<W*\N6F^9N3VV;:,3YDMU6^5&O2#RXY<<\"Z%FWN%SB@+9K)E3ZI!Y_2K7!
M&!R[6?ESG );_MWOEC^E\3'P(1J>6VRSVF&A<A^[]]>Z@_XP[[%ZYGD5PK\0
M1>%[:_F\63>"*A7F1Y6\Z'.*>OTB]PFF)0B[WJ^]&RST;)??S=R3S_X/HX&P
M0Q%GIES)X5+[=3ZWRV2F=^WJI5^\K.,MV2[OM]\M?REWY]DM^_6LX)>],.TR
MR[=:L:'3I_S3JA[5+SXW9L0LWEM0*@^E?N"OS.L(_N,_S,^J8\!B9JRRYXPN
M'^_R9%J#MJM'_'/NW/)EM^QW)VJ6.HC34%R77%^]$PTWX9Y!>SF?TG(;O+A)
M\ HGO"Z4;&EA5;-<@K4#>82%NZ^%N_%9OXO/&7ZP WZ76["#JZQ$5V5D3=G2
MG=";M/'_H%>S-+[9>BP\SN#>N_\OMS+I=A+S[82E&W?<_=H:+1,]WF]U8OUC
M''ZQW,R6/_MBT;S6D/HIW8DWC_*OE'1/")<0V4YHO&V?O'';L[;L.W%LPNUD
M_>)3/#9&UKORC)7+^V6/+UH3OJIZ?&S<<5+KRU0DT,T:T\VM9&78FX??F[L:
MGG=1BBHSN8KB$;L*NCMP,<'AABWM.%@/,IDO;9\R]5:8Z'47?\7#[<HCZ^>/
M3'X/+2<74]^-;<<5KLH:,J.W/ ,CKJ^A_#QDPMC,#K1X/[2XF@'/JTHK.@$3
M)ZM*COSMKM_# 9C+O'-Z!5"R@ZF;\N&P.4N5CE8U-EN<:A%-Q/JC*LQ_378:
MAC"ITK'KYZ/L7?M&U\+#I1VV1&=[U++6_'O@<@]=$N38(5$Y*D1KN^H9"E'T
MKNQX,OWDZEF],KW=]U;4/@'!I1U>G6*X;F2QTA,]5T@6HP2$<<&)SQ*MNG',
M9!O<EAC\1T]^C\F:[O$\Z_NVDK]A_S.7RN..:7$M3J[BW@FZ>/+;2]=D>W=;
MK7&2=:_LX#3<'M^EQFY(^8=HNW91O8F36H1V&=9E%<Y4VZR++K!L#[H=4Z5T
M]<Y;^?#$G=&A+%7&^?R!+!C:X6U0OO?UQ.H;-W:MKI1WR@9<56E?U>M[P7$$
M=F%&C8/]LUW^OVL?N8AI?%OOB=L1VBZ/$O2]*GT3+^?!7\AO#IL=G@YKO29Y
M:;)IK'N4JR(;/G64T#XL ?#L7:5)=KH3S8K+[1^B@,_U'V'Y]#5+0[ZO4U6]
M:(FEZRL7?5NGUNC"9(_T\V'Q:EZ%*SK#RK&R@U>YGC/%9V4U7%O\S-N#=M3Q
M677NEBL2[:<%F9_G"*:&RV%_$KY-*72F0?4@U[JJ54VN_)IE+DN?58^P"87)
M)TM.\)E/[?<SBEJ^FU535(PB<E?9X2O67/>KR2]=46 W-94*JLLYN+[3Y2D^
MXT%%EO_:4^_O=L[\3-T(+,.[SM:]ZLR?J2?MN ;7G&%K'R4S^SJ&BZ$,6!;E
MPW$^4SU9R$IZLA 6>K(\PE">>D^6JK",5!5\PUH]7X;G^GW\=?CA9*HPKW&\
M6SO9+9N!;%?'?9?]&B9.&'H2W1A4U:BT!"<+B<W\?-B?NU6>G3K;9G3I0C[R
M) KYEH4NOKZEJ[0B_ _'A[6]PP^[[Z=.PCHX*(G_Y.#XG\.]I0\G7V>JKEK&
M6G*9[(]OJH:]]H4_<F5N2,WT.5$S11O2)NB?VT^1KB_#LE%GA+\.WQPV2OY\
M>^A: +G*\I.&E5*^FOQD[Z^#_4_OEV?:*3N;T5E/ Z,/W(1LM4[DY7JX3*T!
M13L)=Y,>G_<QXM;>K58UA0^\AHTKVC?[QL*36/5!%/WH\'!\(/D(W7AIHUE,
MJ8!I?#K*6W>2!(+@?Y9V>JP=C:W4([UB&HM.5-/HP:*6;NM(:]?-P)'6Y(G5
MCT1Q#[XF=:\^]*I5*-FNZX_(TY/]N7T[?MDSU2$ XQ[=E<^A=$#:NRZGS^FQ
M&L/P*>5!"]7GD_T:G+.G='N-E)(ES@HKG&/*'UM@]85^=W,9?*7AB+LP^,'/
M9B[S31(<PQ%;$FF5!SN<.Y[]/7-Z(FWEO?'I]<-G18>6$'YN1WF[;71>GF%Q
M[GR]H\-"W DCHNR!+\Y,="7Y+:O*)>NKRL65*N=:P9;K=O+IZ&CW^'3-FHQ6
M+6'[$X=U!0_GI(>3KL3#R>!]>CB'M]I)*F 7KA"J_[(W:%N2NH%Q_M#NSZG1
MFA)#7CWV^.[=)[IHCUZME85=69_>Y?FOI]>#"=$=1&_7UNCA^P]QO),BOHI.
M09M0]+8HP_$Z+*DHM92TM4]';PZ.ERFIOW72Z>.OYCWW(+B'>L+%#3Y65E'X
M>S'NYTIV;T48RY8BW5?)Y4VBEW=>I?N1VO<YK$I8-_O]\Y<O7KA&S'9P.V?=
M'R]V"]6T&FGOA=%GHGAAK6'Q@C,KW]@+-\3R5TO^]G^$O:BF0=!.LV^9\;A*
MW(IVW994'7LGC[DO1;YK^6Q_E)YX]^GX -6_!YVJP1%.MB.4\G0J.ZS?M!1R
MUO2]PYGS[:,X^F/*JS_ISG=1@:&)17;0^.7_V8L^E@E*UM*:-]4^CJ(.PS2F
M\NU_#UI5RW+[VO_[UMI_4:V[$R% *$;\__VY0(FY)_FR)MCP9L.$1L"&1\ &
M7&+#)"3LCE+4JN/[;HH7/:?^YKVF\X^<V/G;;QXX['#IJ,Z%FKM@I@\4?O!H
MX-Q_94;2LFB!W9\;@18;HTGL!4TBH,40+1!*"<(,<<0HY>D+S3CB::K-3_H[
MP+BEEK$]H68X_0%[UN1+(@*UB#"I/QR;L[S7K_!H'-H9XL()X-'_G;K'\3XA
M!&!,$Q0_0V5A/R@+@?UGE874CS=^H<XZ/T7%SMULE,)^_TBP>U[DK0C[@R-1
MNK1Z0.]L3!P)NT!1V2/>OC@H"*_)05 0 D+\SIP@)2:\N00M<=&[BL&OJ"@;
M.1!&)3:E%X$LS?AD_,91^N(Z6P<;HQZ\#>I!8/[?,3^M%()))6!W@L]'"L%O
MX&':$KBI)_'NPC_X!F9:PFQFE.'A%NCDW*C<$GJTY\:1V9'TRQK&DU&AXUY9
M'7@3-Q>=<G+]UJ1%"TU:@%.(X?^[8W_-39%3-/B\G[:<ZMU&4.%RP-C;L=5<
MJ-2FIXK<E\"6<FM__('G6'&>]T>ULDNR[)LIX7--NN%0\K@RWTKLC+3>8'9.
M](&"N]%_;:3X"4S]P*[I-*T"W0MB4K?L<;(DVZ?I#KJ9L [^YUDV?W-+-@^R
M^TFR^=#&Y'Z\U(MNX)K5($S04(@CV+R.XY=I=78GOD?PKQ7*^R3(>P<$>T'>
M!R"8E_<$4A['[(6FA$(&K;Q'\'O)_9[++!^^-Z[D/=H]*TPI;Z7I7[AN. O@
MP7&[$:Y%5A9]$.Y0Q._1KFLDE(NRDGZWTV]V.Y?1R:"S-!K\SPK1  >_LT.#
M_: 6!#281P,+ 0@R^D+'!/.4>#0HIM' E>VU.Z4WSG'\&!9\?XTA\SLV'+>#
M6YS1MBS_'Z^0_TG0!AS_'P1M(/#_<OS?*_G_P#<O](P^8OGMJ"P<=PGL$4H<
M@T&^[3C9B?K?J G'7<N6_>ASWFI9!6-I,#C9%##8'&7@;5 & A@L!P;]!;'H
M1<A0*@/3+#Y$BUKW1\F%B):(L33O-S:%]S='$7@7%(' ^\OQ_F#:$)AR HX9
M_X]:MP,^#KLG_UFUK5FJ*?ZR,/!I4V!@<U2 OX(*$&#@QF&"[E*(,$* ZSK,
M+\O[]1 96#7O'P85(/#^/.\S/UXRXGTZS?N56V QS_<6Z?^SZG^9"DH?Q?*G
M0>P[UO_;LKXL7KP.LC_P_PUE_[\K_B][4DUX^"O&?-/M#'JNL_59(=I+\_C'
M(-Y7S>/_$\3[$V?ONV?ONAZQW:SH#<10@D]K]J[$I,A5?]11XE,G[\^I^-5Y
M..MIZ-\X[??* S<?LK'EPOY_:]/MDEW=[3+TK;PE9CR-OI6AW^/LM:?7[W%=
M%)SWP7<9%)P%"DZIX?"A 8/1M '3FE9Q/IC"=\IW2LBJU9UE]9WW"^KL[Z3U
M8+1(ZWEV1A!&P0)ZL@ Q9&\\R=X8#=T3LI?K7/AN>55:8E%5"+E@97F>@3M:
MP#DLGYT'$).=V[%&D)V;RQID5,_7Z54G)+_SW-!H=HM.WXJ8]^\_W!MK;(K,
ML*L4I,8S8PV"AJPQ:CCA5+KS@?.,E<EN)\8?<AH1B(?RY$044G1,#]1_MLQE
MM*OZY0GP]HX_]@[J?SY[*6-9"0<I\]Q8":^:E=[>(RMMC%3"02H].U;"2TNE
M%,8WD$J#HI/WFL]:,N$@F9X?.RTMF99EI[?WS$Z;(IT01#LG>W]MI(!ZN%4Z
M],&MZ%]OCM]'#?&SV^FV+Z.#GWW3Z?F^-JIIVB+:[ZI!F5 _I_),K.Z3169'
M2GN[[S<2G->&E/9$2PU:);Z]SSO?I>B9^R*L3<*H][NW:V@8,*HBK/="FM:]
MD]0F8=6'X]LU<@]859'4A\(X;W0 JUG*VC^X79?P %;+*E1S&?!/&*EH0*EK
M5VBO:P<0?7 'SA^Z'1-EQ_1]T1>1SZ3XPV>)]%TBA^A%DZ3G2U[&!Z-'_2$I
MFA$IYIWRV^YW9<<B[)>U_728 ]*++,?_U\XB/^<*X6X54/"$X>2_7(\CWVQ<
M1VW1L:3@8</MER.'J%O8W]OG=DM%OUM<1N<NQ\=^*(I"=,J;Y[=K+INXG-'K
M:? )J<97I1K'5Z<:NSGD^O]L_3Z9%3.R=8\)RFN;@_S80WG(=.-TD=R])_R8
M.X'<T^K)X;O:;N/3\<')E7P]G1X].=YO@UX_SVZ0SWXWP/,#_C#A^BP3I/X]
MR(NJD-/5=9?NT/*(8D0<UB'VA_YSY!LU:E!8E'$'DOY430>"0P<I2@G=GLVZ
M:EK!J=UA($H,>OY\HKQGK_L$1SL$::*>70I[P4E,.P1IFJ*5N;Q)]R!/5N4-
M_LF%&73LM_P#Q:#?[!9VZOZ[[FX46Z&LA2]0>VMD,7#%:AABLK/,YK@%?/#D
M=8;0#JM>O#A[?4KR3EVD< =><_G:[_[F8L+NX[DT)LL_N5)\9J0CHN5:+51"
M;J"OW.+6-=5@]NKO:@?_BO;JQQ_JQ[N-PWIMD?XXLXSD+JL87W_K'39NR24N
M.>A!5_G-Y<LEC*G[HZH'G_)URL:+WHM2/LS_6W4!^'MGV A@"6(,/#U+;6$5
M5[&*SLN8:V?.N3J-O69N,JNS6/W%6_GU+,N5*9:PWH:C77/-;4GM;*Q^.=5,
MNJ:=E08F3:M[,=2\,JOI="_< ?/G5@/K=GI.R:J4L_G<>K? >:F$*7$N5#D$
M]VFEFKEV(#U[2V5KKZ]"=OMJ0LQW8+)<@=[C5Q/2="?%\88,%B4[F%Q]^0:E
MCYLL=4_LB$1_4)B@B R7I)'W6V$Y1LNQ;Z'UD97_.]L):STXQ#;:B+FUWGY[
MKBJZ%^7O>..TQNVK5,9MK]@,#SR(_C@O\H[*ST4K,J-;N^6M?SXO<-IZ/7*[
MH=C7))-E+)?KN*I2^+P^>-Z/>MU6KJ/AZ-=_/>Z+KU9T:\#@-<+@#V+0BO9W
MHD97GS5%^]DB\(GIY!97_[$ &HUM>.?3SSN^9</8G"\_L6\<8O,D&F?#B^7R
MVF]5ORC5'73Z=@7*OP-6!ZSVDO]>^&]]D7K=;WU^^%^=H><.T%L;]&_G6K?,
M@Z[14+4.@/S< 7GU#!'@.,#Q<G#<:)JNMGKH_[@(QZ^ QP&/GSL>WPM'K"\@
M!T_&;:'S1*AF[BK'+JS1O:H 38#.#2*. )TS/JW[X(CUA<YUO_6Y ?+?W:8E
M/A.@.$#QLX?B%?/"^H)PT%]O"Y?[N>AT3/1!%(4=5T#-@)K/'C7OAR4">*Z4
M/1ZT4]RU"'HDBF_=(G<9Z99L)M)>QIW1 I &(%T;('U@SKE7]EA?4%WW6Y^;
MGKO;Z3>[G<OH9- ).FZ YO6$YH=;C]6SP_I"\8KUV[4X0'-M&M@D5S>P>2&[
M^M+^:/;;K=?_'U!+ P04    " #D@%!6-DC9'I<;  !_.P$ $0   &-G;G@M
M,C R,C$R,S$N>'-D[5U;<]LXLGZ?7X'CEYFMBN);[C7)EFS+B;9LRV,YR>[3
M%D5"$DXH0D.0MK6__G2#5Q$D 4KRA&>IK=J)):$;C?Z:0'>C ?[^]Z>%2QZH
M+QCW/AX<OSPZ(-2SN<.\V<>#K_>7O7<'?__TRR^__T^O]\^SNRMRP>UP0;V
MG/O4"JA#'EDP)]\=*GZ0J<\7Y#OW?[ 'J]?[)(G.^7+EL]D\("=')Z?%7_T/
MKQS[S>GK*>V=OGK]JO?JR#GIO7_KO.E-7IV>TE='[T[>VZ]>S#Z\>6N?3DXF
MQSUK<D)[K]XZ=F]"CT]Z$]MY<SR=OGM+W[V33)_$!V'/Z<(B,#!/?'@2'P_F
M0;#\<'CX^/CX\O'T)?=GAR='1\>'_[R^&LNF!W%;EWD_UEH_37PW:7]ZB#]/
M+$&3YO;,>TJ;VWSFT:>7-E] XY.3XY/3XZ0=<F$U?)DG LNS4[Y.X/>"U9**
M<AKX^1!_QGZ.>D?'O9.UGIP@)<MW\_HP^O& 6$'@LTD8T$ON+R[HU I=( F]
M/T/+95-&';  ER+&:PUR/P>6/Z/!C;6@8FG9M%8'GWXA!$%ABR7W ^(I1%-+
M3*20P@\DV0&) +SBMA5(J\26(AF/TOZ0NH' 3SW\]/)). >'YKV&HC>SK&6C
MGO,T4>_Q-TTDR%GC\?OW[P^?T+S*)2BU&MF^AW_VX#DX/6[0;97YF?<-GWH)
MW2YDR!ZM9C(D=%O*4/I(5=F"CE)^%H9BE#^BADI("'#TKYMT**C]<L8?X($-
MO<!?F1A_&4GRH8G9KS,+?1]6FV8"Y&G23QN+X%#6I/>D.?Y1TJ?E>3R0]/A-
M_-URR;PIC[Z K]!F/R2&>T>GR=RMK#XELX/\YX/EVSYW-5/)X=+G2^H'C(K\
MRB49S'TZ_7B ZU<OF:C_[5J3ER!)TD3I8/WIPY\/@82Z5]E($EI\ #X>" #
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
M?-2^BU:CGGU*4QSFQF#"1(NQDE(K._*4R\!TTSLH.:O&A#6;^30*;2>KY-:
M%4RD2+8%BJ:LM=B6W,Q=ANUZ?V2R2J] 6,EE06IACSHR[;LN?T3/"@+=<Q\F
MVJ#1]-V4H19ADW=:X1J?]"(K^:)^HLOQ][!&'OB4^J"5^!=,J(0B@#7*OZ!+
M+E@@[KCK3J- :9LG>Y-^M$:@9.8J'O.X\_1GF<V)^R>) "0G02>M0WW'V7;7
M:31BI\5:/<I:\C:U?59.>S]:G+3>#MI-.6M1-K]7+=G5W"-NB'AVRAA;C99R
M$<::9)9<9+$E\ 8=:/%7$GD&^.?/,F-K$G5-DK[WEE  JG#76U^(<"%5)KX*
M#*'C.@),R";'-<0:JN(S[G!19R=FLVMIM#:F)!,-;"P1LI=<:)<3DZ"<&/%G
MDN:.D(BB70H2R[NWRZH)1-YZQFS0T;//529=Z2SJO7JK7J-9*Y-A/X&9&4K=
MC[NQ#X,>M&:A9!%-S$+79&\+L49R=<_4EVX?A/F%Q_DKR-#@,I[=]*.U"_46
MP"K0"X786?_JG"%%Z&3<6O)ZXJVBFX;\M' KR<C2-R'O YGR&Z2W.V!DRD@+
MHI)O7+MM>G^"J!R\]>K*6Y\_, &=@'YRC38!LQ%C+;@E9S[7P"W6;J;]R:SR
M^KWCW08<$Z^>S5PF1>+38$YQ8<)E$H\[7U('PB<7/X0!]U?GW%]R'WX!XCOX
M)^"X_%G>*CO%'?^2 S;5_B:&\U,$U!J@DMPL&."ZU&B"6(40"4XBR4DL.DEE
M)ZGPR(>@D%B_$ _@5Y$[E)[^OF;..3OON%GGCVJ!YT7]![H^U0R>;#?$HK(A
M1/8P:BPQNZ6P&@1LPPEN)SUJ#4_)MQ9GOO7#8[$DRK3W@J3BD$0>N<N22M1Y
M"UI;L)(=*?BIX=74S5EJ;:#^11KJZI=NI^$4T>$KJ$M?F7&>2<:GI2U,PY#M
MV&M1-WYG!]YRDG:*^%>^W*-[<4HI EL%GXTY:H ^/E*2D]5 [P-0P[>V;+=[
MNCEO+=AJRE'_?I<][L:X9[G N)1DZO/%X D<'M!=4E$BK^7EWNP*/&LG6A^S
M4C8&P^S[U#)>!OYRB;0VIJ8O36PLG\A,ZG!05I((FU;DQ'<)@[P]*7#L8[S(
MU^>AT$1*W44K/0LA,*!"].T_0XC/Y*[B.+1<:W+.KP*G^6GFI@RU-J+D/),>
M2+X+N0V&O8"/^?(%@9Y>=OS$,Y8FXE-QR7QS],J(M @I"4U9%2F?2.332>V7
MO;IKN_QS8XY:W$IJ'LM>$;;/2&MPS2^<N5]AZ;FC+EZBT>Q%'MMWH46^Y#VP
MY<BO+[7Y-KBPQGUW^(T>#;"*$UZ3%1+S*>KL.4RBIANM62@IO.9FD:3UP,&2
M2L+[V/&^Y2X:QSB<"/HG)KL&#XUN8ZLBU *HUCRFG$C$"K[K)!2QP0Z'6$DG
MA8$)[ _P&-D4KS"+WU9C'DHUXZ<%3BTD3)ZPX9#TTC[DK)OUDKQDY[\]<OG]
M\$E\L)9+!LX'?A-]]CP>R2Z_@F^H*U\A(@&W9][3O]/R"YB2F!UEP)2BG.RH
MY2WU&8]6TG-KR8+H.N_^ E5\0*R)D$?[/QY,+5?0 ^)9"YHK&=E%'QYSY?7-
M'P]@2H4NGB:^RSXL)0VJX^,!\W![)DA^FD1GU#\>.'3"X%L!SSLFV+'3SSX/
MEQ\/HH8LH(L#$D@>T3<+[H'-^*LA_(*\#PXK]9A>*WT9W7<]QI?NL&AW:!+$
MUU#CI2E3B+\O(>"2MX&=X383M(5Y1WY.:VXK=;GS?EJJSY*+Q\=S[@?WU%_T
MH_P*_IF[NKM299NP:JE69/'9'5V&OCW'!^A">A31 Q/EE6]X\"\:C&D0N-2I
M5$EC/GI].*$OG^-&0Q>R+X.!*_MMWUDP_P=(+1QF1W'7#<@*@Y"O&J@<>&,^
M+36$BY!>8@X"GFHV\\XL[T?-F,O:MG1<N"*X% *F>VK//>[R&<YEGB./]Q=O
M ;RFBPGU\^..QA(_]INPVKF=.X'?P[_$!X<O+.8UL_7<*][@TWD8X #^P2>B
M;P>?73[!I$8RD"O^"&VBW603^]^<]^:V8\LCP<]E/#?<PS?=R<OJE>UY\.3L
M&+@*W9B2M_71D;+;*QB:)R+/TW+^-XR6M'X\Y,J'Q8SXN9:! )>?398!M%QI
M4_*BY?@\L9 U6N9K0"V3EJ*=+=ZW/F[2+$9VP&$*.SDZ?E<_+YI0MF$:3#:H
MCC73?+%9&V3'.-6GLHXQ/DDB5QWX"!XZ..::I<N8O UC'4%W\AB>O,X^6556
M. :,V"">BV+H^KBF(9>V+D'7$+POPD5_1N_Y&1VX3"Z?]_P"PWH:W;7')K)3
M/(90J8[&?)YI9DZ(&MM!;+<W/(5RY,O9-HOS#6W!B%.3X?^5TS2X3+AM3B]H
M]._0*SOA%@*R=_2!0226WBH.[OJ4@CP^Q5+A:N]^ASVT58EQ#77>Z,4WB-7[
MP0#<^>G(DTF.ZOC?D/P9)U-@8L.0#,8Z\"#^7M+/B\F7^C6BI&$K5@-<J/J"
M6?72*\W:('OB2IR8>1PG;9)]S!]H%-]SS\GR>UG"O#H7I*=LJ0^L>; O>>C+
M;.>F,T..03OFAB<;JX9 M(G@F-I(7H^WBK<=JS/P>LJV3OY*N')MP<>3HY.C
MAF&.0M>&QQ9?B9IX,8'U-*$>.'B!F/-'SQ(6N*JAS$H&W$N3$TX<OD)S2X:O
ME:COAGE;7>U<D(2M1?^)"8. *M=V!P;@!!\<ML#[1B,?><.\QK7UA.Y^YL.E
M!T_6'3@W^C6N(*A&?F-^6\P"SXMVG+V&$9Q%9HQ7P6+FACIXR3ASZ-=Q_830
MA$,;IH9&.WWWCSRWT7<_]RE]C@U%@VY:ZBOT\4T2*^GBU)M)2<-66$-<Q@!!
M+V4/*$UZV>9E_DK/V,IAP9=G"3&RZZ>)W&HCV WWMOH0Z=';=!I$R=>/^?9#
M&&.TWRG?@QMY9=4>U18L6^%,*EGPPI98=!:5X7PYCHO7&J34C9BU=*HH.@L7
M\ADU=2V2UFV8-,;]\S'S62CZS@,JSCE?P80&BF"VT&<83*G;,-+/X.? ^G0^
M9YXF\U#6L@TCN.$>%JG(6=;GBW,KL$!\OIS7N'FU-&V=C*/Z$J7^JX_O\9K)
MMF>K7)OX?;A]W).+K_0;/,$LAZG,(<;MX'O;]2[.,_;85B7GO)@FN2 =64MG
M['BW9'?ATZ;\6AL^I9>3-#8) \J66@6(F*;U;FCPR/T?F )+TK?R9 8^W'.V
MU._'-N;4AC6E66R71G-1=)=F/W<=0QKTTU*+,G'ZD_VX(3J[\<R@JX_>DFUK
M9QV3@:FU#G%Z9@=*T_)NZ_)];:WT&>Y"HS9,.+<^QZ1R\E+6J*"X$L**UC^_
ME"%Y16%:<5"2]XCO:JI9-QOP:*L=5FZB:+9(]71ML-:;$&49325/60G.O.2L
MRBU?QL=WJJ,O0_(&BUD#%)D7T!GU#;=)0UAXOT \ S$-!<]ES*<!_JFOH-80
MM@'&:[#G%1C8#QKDWA;7Q,=MP*&EGDD\E>*AJ5%R-TD]N'44;4!55HAD%Y#@
M[2,&)27E!&T83R,?.:Y)BK=9XDV7'?OANCY::NG?>$ ''O!U907;P++G^.IP
M[LD,3NZ%PY5::L#A9T_=S4[[)8%4'%<EA_]V?:A0WTU+34?9I<BVA--=B<@E
M,]_HJ&'14BU\_L:^P1<A'KSS[)>:;'EYXS9,J"8!8)RBPP4N2M'M(*BLY-E>
M)SY@OOPNW=2M5$!IV]96 !4?QO2XN-1RA! &'N"X7H"'X_(E,HA3 0T.B3;E
MV](G?TQ=%T^V4@^OK@;A^\Z">9C;E%> :78#S8A;,3.45[C#IZ_RC#=-MG5P
MN:,>X_ZUY5G13E#UU+ 5TUT[$IOL^-]C C'T5V<@2Z/P2$_85H/G83"?<. W
MFU];0H"G%\+SK#LYK"5K@Y&G/ALX8:+&9\MNSJ?^(JX+U#N"&S']^8D[>6B_
MT19Z#45;U_,DLX@9IV0+*LTR1@=Y YB?;T%./\JIKK\AN.[HU4YXMW8_(KOB
MXR(6H*YHN*IU>\J&50GK:Y6JV[=A1C-QO@=/,"-AFWPAQRYJ]>H9MZ)B;_U8
MY!U>*SZ:?A5QA1T>78??Y-(\F@X72UBGX^N'#0]:-N+8TA6_=OZ*)JSB@<G-
MYL(J7JV=^R1N9Y;]@SK9JMZH-LB804MM([EB^27>?*SQ ,N:MF&.E)=2Y,)/
MC#E])J\LQZXTHS(C;L,XD^<M>09%T0FYXZY[&=W4H3NG:<;C9U]M8K)(9?XI
ML^5=E3M(9U7R;*O[JQ9UW%&(2[Q[GKY *SN3T/2>#0-6;7@\AIY#%QZ;LNA.
MHE1:<4^?@C.7VS]J[@O0DS[C$(.D%X-1-MZP;OM&=>@QFRTMMW$1I@%E2Q==
M]1'+=DPN&684LR>L\:TX!JS:@+N23Y9;U=EU8^:):(6PI:@;[:/(;QZ2>WM'
MGG1/E"'O8L>F64]M7?C&N"T-,UQ<N0$?X@MU=>E,+5T;'I(XBYBE*$;3^'J&
MH7=K^8%'?:ROUAUYUM.W(I97?--^_)H"LX)T8_(V(*NY92,N/=GTDHZ4O!6X
MQMG0^ @19L>K4\^E;7]^#KV_7+JQ<\BGB:&-E]1&GW',W0@!S2'J1CS:8J0P
M%8/G /.&>F$T/%^Y^Z'O4=KH/UI_>WO&+?'&Y6GF_)OS)O57BE:W_^FA]M.2
M^4F"%_H<3>5]V-'^;>VU? :4/_\!UDV8Z?F;C:?<'(=6S+HE5[C7ST\U!&V8
MC/(7]V3WE8CZJ\WKB=I:PU/^,@CU:&[5R=QOLO1"7^*X\W[:&B5<4%M:LOZ0
M1EG+-EC_#989T-$TWIT"Y=]R\"96^K76@+(EB^D5A9"3KN^_19:&YXH]^HBS
M$T8PGK+&KHVX,9^?OSQM^R3&9_'E)36SF4]G%EYG9WX1P#-WW=*,3)8JBW-G
M]WC3^Y3ZMSZSJ6G"O"F7-DPG29XG31!%V9[<ZP]N:K;(#:E;BGJ3HL6^Z]YP
M[UGJ(:M8MZ$J,E?S91#,E39NR9H"DSR..5[Y1M,[)GY$ZY_I^MF PU\]9OD^
M,V'/Z<+Z],O_ 5!+ P04    " #D@%!6.$\:MS$O  !!X $ %0   &-G;G@M
M,C R,C$R,S%?8V%L+GAM;.5]69=;N9'FNW^%IN9UPH5]\;'=)RLEE=5'KM21
M5*Z>)QXL 8EM)JGA);7TKY\ <]^YX))757W<JF22R?L!\2$V! )__8^OIY-G
MGW'>C6?3O_W _\Q^>(;3-,OCZ8>__?#K^Y?@?OB/O__I3W_]7P#_]=/;U\^>
MS]+R%*>+9\=S# O,S[Z,%Q^?_9:Q^_>S,I^=/OMM-O_W^', ^/OJCXYGG[[-
MQQ\^+IX))N3M=^=_43D9J0N"5%J!8EF M]E 5%*B8D[XI/[/A[\8FV04D4.(
M D'9G" B%Q!3-KP49]&YU9=.QM-__Z7^$T.'SVAPTV[U\F\_?%PL/OWEQQ^_
M?/GRYZ]Q/OGS;/[A1\&8_/'BTS^<?_SKG<]_D:M/<^_]CZMW+S_:C>_[('TM
M__&__OGZ7?J(IP'&TVX1IJD^H!O_I5O]\O4LA<5JSI_$]>S!3]17</$QJ+\"
MFA/)__RURS_\_4_/GIU-QWPVP;=8GM7__OKVU>4CT^S#%+_^.<U.?ZQO_7A\
M\LN[D]>OGA^]?_'\W7OZ]Y\O?GG_[N3ER9L7;X_>OZ)W:02K;UQ\^X1_^Z$;
MGWZ:X,7O/LZQ_.V']&'ZE9 (P<49CO^]QK?^>(4UA4E:3E93\YI>GW]WA=<,
M-GY=X#3CV0Q=/'<R2S<^-*GRF<TO_G(2(DY6OQTM._@0PJ?1*UHFI_AZUG4O
MB??'L^EB/%W2LCGYA/,5_NXG++,YGGWN??B*W8NOBWF8S6EQA?FW5PL\[7Z9
MT;O3!8V#'O/AU72!<^P6(^.,TB%%,,$E4$('<"X&2,9%+60(P=Z:]SHW'4W.
MBB E=''%DG.L/U:!_(B317?QFY6(5N+9PW#.Y+O]3)]#J%]X@7$4N"$1:@8!
MO2"](1P$S0P80RHAY9)D28UGZ!X8-T=VC;M'\_2,9@;GI%-_>/8%JP8\5Z]G
MF,(\W2#UW<5]_HD?N^7IZ>H[84Q3?/'W5=<.DX^+65OIG;&$9F-7&KVDP8\_
M3(^7\SF9N&_OYV':A51GYN<PGE9<9Q-$4S-*DO,2I0="2O;&.0$NJ0#%B21E
M,(HFHC&]-H"W#NW$'YQV?4F[&1U?33_3&*LO=38U- >SBZ4R"HJ61W0()2D:
M><X%0H@9M! ZZV)CUJ&Y 7@8SSJ$DW]PPC639S.&G2P^XOPZC#-@+[Y^PFF'
MHY"LY48B,.X)DV<):.@!Z)6UCEGG5&QM0A]%M [+U!^<90UEVHQG/\]IFM[,
M9V6\&"G)71(4B$CC"JCH+,0@"NB(B88E2M:J,:FN/7[7D;S%SSA=XH7(YV0P
M?J/X]GC9+6B2YR^^ILFRAL9'78?TOUR-AS%:4G!:P&IE:,KIG\"=AN \SU(;
MQ65K5V$+F$/R5+?ER^VUT+>TFBV0XUFW."D_SV:Y.YKF=SC_/$[8O9M-\H@;
MQS(G)]@(SJMA8.!RMI Q^8Q<<E]:1WH/H]G0KX3O@B6-)K^=5;XO'F*^&)/H
M\2(I4(%E(J1SP HS*:"3F)N;XJ>BV2T\VM-/83RO'M!)(6,7IA_&<8)U]2VZ
MR\58!?%E/)F,,"L?%,G4^Q) J9#!N^C L6!ED:BU;3WFC0!NJ#'[70R[DN:.
ML]J;J)JMDTO?*RQ"1S[4IX_8C=!%&[@U4++7A,1Z\"637B#UD%4QW-K2F#3W
MX1B4HFS-C9TGOAD%WN'*<?X9IS3""6GOHWPZGHX)%(WW\Z732WPTF)R'1(,C
MZU L.;U.4B!O%5<Q%2%:DV(]9!N&S=\737H03C/BO,4.Z6L^$JKGY"1.9I^J
MJKN A!0E,4YCM2X3ER6A"80%F$V.]%F.N?#F'OLC@#:,>[\OFK0314MV+.;+
MM%C.:9C''\/\ RDXP8L3,2 XRT.-G"-$'0((]"X422P6K3<4[L.Q#A?T=\R%
MW2:^EY2%3#RZI"V@S@3 !-)03BG0UOGBLI>*Y7VE+.X7N-E38-Y:WMO.<C,Q
M_X*+:T,QDC$TAH,)"8'\V0B>8X9"EHC@<61>-!;T#0"[[QB<YQK/M>=/9'KK
MU*9BA2;_'#SCN>83/02C"H6Q(<6B%?ENNI?=XCM0!A4S;2_\NZG]W2>^X;Y1
M?YEI;;GP%JLNMG6Q&PM>&P?62LF9<H++YC'YONH.#KM-VIJ,AY?_+4+_]<?;
ML_R:7K<K0CH^^>>;MR_^\>*7=Z_^]>+5+_3R1<MJI/N^OI^RI"<'TJ@^:;53
M=#P[_33'CZ2T*"0[8\31YS"FCT\J2;HPP7>8R!];C+$[RO^]/-O!)+:>%*+.
MF]E\M5X6B_DX+A?UK][/WH0Y?61D'$=4+@,3A90?41H<*Q%*-@Z]5QC:YRS[
M'5*3_=9[X/TZG6.8C/\'\S]FDU5B[;P"X61Z#>E\W-%;SU>^\1N<CV?Y O(H
M>9/)GA@0QAE0Q=,"S8)")2>*3.BMR:T3''V-94C[4$-:(??N\QZ:2VTK$>X9
M307^%M,D=-VXC,\J8J_FN-JWHY/C5R]G\W<DAI-R-<++X=BLL^)(PTF%D<7*
M";PM!9AEMC#K$4WKX*VWP0PKJ_P=+H[]TJGWU?%P"=O1-*]>36X-<9V)#\(+
MIA1%\#)94#XJB#)Y\O%JJM8R+7+K'>>]#K!/7;4]8'*ML=!"5,3W1'R7)8#/
M(8+#[)/7BG//]JBHMA_)]V#!#[]R-E%9>V+57JSY.O.HG8R*%YH]SSW03P6"
MU?5L#QF%0+,<2^N*J1TA]S5CK8QI=(GB\V@A)X;$S" I@I<&9.)2!)Y,DOL*
M$'J)Q8:I9?K@^[IZXQ#,^4X='O0Q!"<M!)IHBGAL!L=)B\LBI63>&]D\J7E
MA^>P:<XA+I7#LZIA(>F=T5VZ EGX1'/G0*M0*UN] N<8 R[0N(C:BMSZR,@C
M<-KNW*42..=:@HVV;AX6TE)&)2#?)SECT7G6.F9Y9.?NL-:H%0=N+Y_M9WPP
MCJ4)400T"I)"3L//$8)2!E*,4G@KK<URR([E875W7\3:IU3WL"GUT]'KHU^.
M7[S[QXL7[W<^$'_SR]IM.#T"LM'VTNMQB./)RN,\LZR+4>)*:.?)>0R"!!4C
M@B=B0#WK1-ZDY]*TKD.XBV)7'724TFPY771OPK?*PHNQQ<!,+-D XRR=]:F(
M NMZR$[PP+C#UJKE?B1#,D4[<N"VHF@P]<U,$6&9+S'?.T(*E9RD<66N"4[R
M$%@J(!R76>12@K7MF7 _F"&9C_9D:"" UGRX5E1Q 8>YF'AM34/FT8&2G(.7
M3$(*R3AI+!>B!\UP/Y@AG=/NAP\["J!A)';WP.'%B+]=(!,)359.0C'UW P!
MJ1T&*CRG)1?*>M]Z<W(=7$,Z9]V8)<W%TO[8WVL,'=[!9 UIM< \>=26T:"Y
M !<E.;E6.!3>"!E]Z]#E440;%J)_3R1I*(IVI]VNAEA/J2YFZ=\?9Q.:Y>[%
M_UL2N%%4,8M:FJ>3]!20>P>AQ 3<UT,2A,PWKP%Z"E/#,8]X2($G9T&6>BZ;
M?H8@<@)C=,S<>,RZ-?^O/7Z@3O7N3+ASMF_+*6^9P3P=KY*L=71GU:L?<)HJ
M($%NG*)%!H(L-B@K707$ 47BP:+DQK6.'Q^!,U#?NCTG6HFDW;'/N^-SP0K!
MD4RV,H)\/(80O<R@DN<B,0H";.LMXZ?TW6"\Z_:,V%$ ?1(A6Z^55A$28V3W
M'6H(.EMP/F&TL13F6O>7:6_XZHJ;35??^Z\P6>+)<E$[A-9RSA%'[:2F)5:"
MIQ6G:D5'#)&"W40.B"XER];G$!^!,R3#N",;[E-[+830+L60\[A.0YB\"6,*
M=(_#I_$B3*[A'%'4XB(K%@1I85"%<+F8%22? S/9:RM,ZUS#DZB&9"@;<Z2Q
M2!J>8%Z$\13SBS"?$E^[HY26IW76,3_',DYCBF)"=IP;#=E6[RY'"2$I":B\
MH=DH FWKM-33J(9D01M3I;%(6B8N+W"LLQ$W\BD*G@0I/&$3*.TRQ*K_N&2%
M)XJ+61_I[4T@#BE]U5K?]"BL9HQZ0U+'^1SS_;8S,O(.:>R0'*E!A39#[7X)
MN9 J]#J%6%J76SV.:$B9K,9\:2B*=@IGU43J(IGFT=A4C >RDQ$4,P9B5*S&
MDSDIS5UTK=-6-P#L[*J'KK8NJ?^I\OH<)JLX>7$<YO-O-,>K.:].@"W!1L@\
MUD-5-,?.:@8FFN*EY,6KYHG^=8 -R7W?GA=W//?F,FE'_HNRW/-#1E=EN<\Q
M+JY>74P#HM>9)0-,G'7%J*U@'7D('FGI>M+@I?GFX680A^3=MZ-0GW)JZ;JM
MZB'>8D)B.:$EPW]9%:'ID8ESL+5ID@I%@.>FMNA#47SAZ%CK\T2/X1F29]^0
M)JTDT+1K_)0^\HV C*QQQF J8-'3T) LO:L(E.5(@RLH??MK0JZ>/R1'O)W,
MMY[AE@[VIS#.Y\UFR-*M8H&;(S0N6.8#C<MZ1UXC^8\^$!=+U"%QY#ZQUG[5
M&K"&Y&JW8T1K>30CRJ_3.)Y,,%^IITL\.CKKBM;U> +1M>1(D:$VY/HG+X)0
M*9O6O:X>1C.D'F?M:-%H]OLH(1A9R2C J^62AI272K90/$G^BG.246"I!-J]
M;:<WJ2TVRM.B\B298FP]C\ IE"T(A6+8>A2'?M/:U&U7;GF ,H&-I/U(1< V
M<]V,O<_/,QF7!7[7@%5+[+/W)"$'8M6 6)*"C9@Y<!9$9I(Q$UL3X E(0XJ,
M6K&AI12:*[9O%*S].DTXKYGVU:&1;K4[L^IF=LY=):,U42*I6DYV.$0%GFPP
M6#+/6J-%UGS[= -X0XJ26BN0UM+IL73[&B(F+87UGE-@3X-6IMY$QY(%@S)J
M%+PDUSIS]QB>(854K0C2;/[;GC.\KMFN\'#A@DN"0XZ)%%Q.%,^GE$&$4ILR
M,@RZE^XX]Z(94CC5B@V-YK[ONNQKL*S7)0KRA(2KE\_(HB ("O*BU$8*;SQB
MZX/53X(:4D35C!E-)=%X/VODHF7<.0[1F5#)F<!%IL%;&80AKRCIUI<&G#VY
M[7Y<]%8PQSRM+%$#WF)JC,J@D D.*)RPNGD%T:89HOWN2&TDV3NV;>O);7A/
MSO3#>YR?7MT_V8UX8HE97T!G21&<QD#+, 8PR>E24+ 46F\KW0-C2 %2 UGO
M.M$-\\/U]L?%MS>3,%T<37/=!/UTWK=D)!2W07NRFBK4J](T!Y^U)$2BZ%"8
M=*[UOM!C>(84\33@0+.I[R]O<C;*U>:%1](^2H#WH9*SR-I6!\G5Y@1(93+*
MK2MQ'D8SI,BF 1$:37O#?<&;E[@1D+OWN$6NG<C* 6I93]);3O8I"6"*2V1:
M>)Y;GZ)8!]>0PIP&U&@NBG:WWEP\G<G";/:)Y&4%*%[+S5;7:P950E02K6WM
MS&XB[/WN!>TD[*VFM&TBXYQE5V&2#)B]+PZ$K/=+,T]#*08A.%."UER6V%JZ
M]P)91]3V^Q'U[I/=4]+B;9V_D_)K=Z9P1LR[>J237%$R.&2 B)1>) I(C,X8
MBS=*-F\U_!B@=7C@OB,>-)O\?5^A<O3N'R]?G_RV<]>J^[^TI^M2[@?=J(M5
M+><*W4=RZS^/Z=M^^D9R))_N+,2K5X>GQ?CS66K+.)VME1EDJG7:S.A*F0*!
MUCTY?"IFU=J;7A_=SB%E^+8*:-_/CA*%-/7VH*L@U\N,H9Y;$;'>T&>CAQA-
M/;?"<A%">1%:VY/'\ SMDK$^"'0G[FPEGY9)B(285Y=0U0K:?X9ZK>/BV^H(
M^62"JP:K7;U=^@JH):0V%@1I2VW7$PQ0K*3!*D\8+7I76F_.;@%S2&FK?=&K
M9V&V8]WM=?!@0F8D<]#5DD.P]6I9SN@GSQ3PJ%PVR(.,K;=MUD<WJ)NA#Z7#
MVLBN/V[]M.S&4R2O[NS W>K8R=D[>41 8LPUOX,A@U)&08BT!'3.0DO.<VR^
M3[P)OD%=*7TH?K627[OF-X3@UJFEU97(X[3 ?'ZJZ>8OKGWR[!ZO5],TKV''
M<SS[+[T^RRR]^)H^AND'?!L6^*(44MDCYIQV*4M(.9%?(#P%)<@9%&YU9(8E
M9EJG^_8[P@9-QN\CYF6 =XV8L@3/5>"@5^D=XR(14]'4%N$$RT9XU7K?='UT
M0]I4'3#'[^EXWH?X6]Y>O:[>]$FC%J2_.%H'*M?LHRD*)(]1),PB-;^,<]O@
M],!-SK][>NXJ_K[I^7(\#=-T$Y_-K"B5*2Y5M8U8BAJ\$ FB#=&GK%%AZ]-*
MZZ,;TA;U]T_/7<7?C)YG0SPIUX=],MUI@D?<* I[*1")(3%012CP*FE(2EBD
M7PE16G<?ZV$80]J*_XX(?VA"]:VX[_-[D)4BO*@%G/7<>R+KXK04$)P5,<04
M4;0^1[:MV[OK+MJKTT]A/*\1Y.H"'.&Y99H78+D6IFM.'I_E$D0*6/56RKGY
M)NHC>(;DXO?$G\?WV7803\,BF]N:YFZ#@)$RQ:<4,D3-*%3(@4%(JWO,"LM)
M:(VY=9)['5R#NEQZ3PQJ+J^F9Y)P-?NG]>:C_UE-VDEY/N[.\)'1>#/'T_'R
MM+M1;LJ,,MQ9L%E%4*X0ZPTK0!@-LZX$)UMG=+9#^CWDMUNS;0\R;5<)%L;3
MJD=/IF=7H5\'Q'0(%$MZ*"K78!)E[7D1(4A9I$"D5=':YC\"YWO(9+=F4BOI
M[,'PG=_5-!*.,W*M(V"H_:&]"G4WL-"8L]+>BD)N]MZLWCFH(=65'MSB;2.H
M'OESWE/EHHSZWMXJH\Q-;3B ]329KEE7"T'7"]>5Y$R:R+1JK8FV0[IA4>OO
M0DGM0:8M(]X;=YM:XS!$R"G7SH")!FR" >9Y/:*1F>&MSWQO?)OLONIB]T26
M[070KPV[=<4<A971&B8#6,XLJ*@L^!@%&.6"EZFXPEH?G%L'UY J: ]IR781
M5SLB768BJF=V\ZS'W8,>QD8DVYK :%)U*@@)]/^U!V_F.?O HFC=B&LC@.M0
MR__.J-6; )MQ[*)TY7AV&L?3U=Q=7LRSH)\ZFI_YN9CF-1F]"@Z.5WGI5S4
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
M@L)(X2EZ#M964 X+D*)/($4IR*U@FO>E;1Z -(0(<H_:IH5@]N:R%6VT9%R
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
M<PTV>$=HA7#-S[MM"74(NPF#(5]CR:YICL]_7_^)%!#__4__'U!+ P04
M" #D@%!6N!Q98%%_  "^FP4 %0   &-G;G@M,C R,C$R,S%?9&5F+GAM;.R]
M6W-;.9(N^CZ_HD[MUX,NW"\=T[/#URKO<-EU;%?WS!,C 20L[I)(#TFY[/GU
M)T&*DDV1TB*)1=%T=72[)5GF^I#Y+2 SD9=__]^?+LY_^(B3Z7 \^L>/XF_\
MQQ]PE,9Y.'K_CQ]_?_><^1__]W_\V[_]^__#V'\^?O/RAZ?C='F!H]D/3R8(
M,\P__#F<G?WPKXS3/WXHD_'%#_\:3_X8?@3&_F/^CYZ,/WR>#-^?S7Z07*K5
MOYW\7>=DE2G(E#:::9XE"RY;%K52J+F7(>G_]_W?K4LJRB@81(E,NYQ81"%9
M3-F*4KQ#[^<?>CX<_?'W^D>$*?Y BQM-Y]_^X\>SV>S#WW_ZZ<\___S;IS@Y
M_]MX\OXGR;GZ:?G;/U[]^J=;O_^GFO^V""'\-/_;ZU^=#M?](GVL^.D_?WWY
M-IWA!;#A:#J#4;IY #T^SZ[_X9=HS$^+OZ1?G0[_/IW_^Y?C!+.Y>NY=P@\;
M?Z-^QY:_QNJ/&(E/B;]]FN8?_^/??OAA(3F8I,GX'-]@^>'JR]_?O+B-=#B:
M_92'%S]=_<Y/<'Y.B.>?,/O\ ?_QXW1X\>$<ES\[FV#9B'ZYY K*5#C_JW[:
M3WMC.B,@DW09D=%/<50)WA#CND_?'_/U9[&,!2[/9PT1W_[LIGC'%S!L*>!;
M']T [?R#V 5>1)RTA/K5YWZ!<PER%6$:OQ_AI[^E\<5/<V!/7K]Z^_KEBZ>/
MWCU[^O8=_?GKLU?OWKY^_O:71V^>_?+ZY=-G;]X^^_]^?_'NO^Y'G=Z//A$T
M*85<O-W_:XM/_P([D60X&M9]YR5]>_6(BK;Y*O#3#$<9\X\_#/,_?AP&C(I;
MF5QVH%%@D+:$0(>!#U'%$ 9;/*<N9[F@\W'ZZK'G=5L=7_/@'"*>SW\ZN)RR
M]P ?!F]G=,+5PXXD@"_HR^D@T0G%500&/GNF1=0,"B],%,20E8W&B=LLFBY9
M66 :YSRZ>L1/55$_X?ELNOS)7'5SM6U&L5#3[NMZ,4IT>$_Q*2[^_\7H[6R<
M_C@;GV<R!)[]]^5P]OG-^/S\^7CR)TSRP!594$7'2M%T^')-RU?",BWII\%'
M7HQOO.@M(7XMD1OJ/IHL97.U!^RX253+IBDW9N/#J61!"UK?CS^,)_1Q__B1
M[\N@V^ &*F7E,WIF.!(.A,@ BV>I>%.4YSRDV/S-6$5Q>![TJKAQ4ZG?YH'8
MEP=/QA<7X\6*WY[!!*<OIM-+S -OK%%"*&:, X+E' -)+P77%E#PH&-TC<FP
M <II,Z*%_&_30C;9'A90GEY.R)7\#2?#<?XGG%_B_.]>?Z@ZF#[[1#;T<$J
MH7A!&@VLH"7 26<6(!*/+=!_++$<51^[QS8@3YM*_>KL-LE43R1;O ?K$5N0
MP1=Z+710A6EK"XO:&A:DSR%+S='W<D9MA?*[I%DKK=WFF6["LS?XX7*2SD@X
MM]^.@8+@(-"I"Z8DIFF'I=W6*)9,Y)B%U3[:/FAU%ZCO@$7-='*;-*9/TBRX
M/HC@R"4 8"(52=R.EGG/@2G+([?D ON0#\B:!:KOES8[:.4V;^R^O'F4_^_E
M=%;]RNF[\:.<Y\*'\]]@F%^,GL"'X0S.YTAK&#>3^?<!1]-Y=/@-DJBFPQF^
MQ<G'8<+%JMY@C=+,/V7Q7EBR!='+R(0!VDQ%0N831Q:SB\7JD(QJS;J^UW3:
MG#TJ1MQFO-N7\4^''X<91WGZA2_S!*9G@Q*3X[G0JY>28;IDS4*0]&*J)$72
M!;$Y4S=A.6V&-=' ;6;X?9GQ"F<DAO$%OAQ/IX,L(H1(8+*)]090!.9M!D;T
M-6 <V8)B3?Q^+SI\!>"T.;"[K&\K/NRK^->S,YS4G6R"9_4.Z",NL/T^(CF<
M#_\'\R\D SJY?R8Q5L"O1V\QT5D^&^+TT83VO-'[+X]V6MSK\@X^#3QM<<(G
ML@=M%DS[HIEWQC*35=%"<I^D;LRAOM9RVG0\"@:LB9?N'3C?M+"ZAD<?84C_
MY!Q)@F_A'+]8T;4-<+T0J8M1CMY.JRVG4]M9%F5R+-&I[4V02#OW@:B\+?;O
MD[J]:G@-5?>.[=^U$#(BSV$Z'9;A(C7E!OYS$OZCUT]>7*WP=;E9X\W*)'<(
M-87'2?*QDK<,;$$&R49?4 >9TP&YN]=BOE\R'XX#:]B]]Q7%72LCW#A\/WIR
M.9G@*'U^-P'RJ-)\C:,\_^Y\9<77R]).\P H&<J@R'+B@<4:&,\9C0TI!VG,
M :F]^TJ^7UX?2/MK2-WF2F3E@EBB1XZ<%:TCTUH8YB60/2^M3=+8DK,\\+5\
MNVMF+0F_HL6124>+BQ@9[1N%&5E<E !&N]9O6Z=KYCU2C=Y5\V!0P'&5LV$N
M .V.1G,&7@G&H[+.<Y=005]I1G,$#5__+W)#>T^CV4.,Z[(C?EAD^OT]G8^G
MF/_QXVQRB3<_'(]F^&GV['S^P'_\.,7W]8MF3%B\.G63&H]J]._1I^%TX)44
M02ID*80:K*L[C)6.H?.N)&^T=.U?YSL ->3)'?FZ=_!F!T5OXLS> N\AP68%
MT]/Y4=H)U& E@[@1&]8":FDL;,J OH,#^RMNW)?4#T8)@2+D9!,CPR?6C)_,
M(M +H73@3@4#+K;VJ0Y(A:^2RQ^>"=L(N]^LNU_G1O5 DJ43$B?CE]MJ>)(9
M'$W2C*=4"A05BFV=EGP+Q.$]A@;*V9Q/MX-D>TBTW7#A=P6NJ"1\L(%)4)EI
MJR*#6&&:(#7Y'-S*UM; G8!.@0+M)-[#F_\&9[0^S,]@,AJ.WD^O4/'D0<I8
M6'3),:W(%?:6:Y:MEH)+2U90:<R#]4A.@0 -9-Q#2NVCE"XO+L]KR>6FX,45
M4"/ <%W3Y7023(,1+/# 64A!\V =%M4ZE;8SN%/@1S^:V)@@^^\_K<B*/.4_
MMB\Q>WMY<0&3S^/R=OA^-(_9CF:TDO'E:%9OR<;GPS2_AEAN?B]&93RYF >Z
MGM87HD-]Y^W*L_T?NE=!6N,UK]2I)8^R6!-SS84PRH-/(*(Q 5 %)>5@_\?O
MMV7\-AF31SW[_-MY?? HUU?AP]>Q%J(D%M2:!2<YTY$8&E%XID XG[6J1&V\
M5]R/:M>MLO)O<'W%1K*<?G7%]A3C[%>877WWK!1,,WICW^'DXE?X-+RXO!BH
MK 5RXY@ITC"=2V1>.63"\6P#.!ZYOX_S>Z,X_![9F"C+#?.P^NC!^-XHE]^G
M6"[/7PX+#H2'F&3(#)RNSF4(+!B1F1.0H]7(O0J'>H-N8)T,A_I214/;?$[S
M*\:^&'W$Q9W0ZU+M AA]?C'Z#2:S$4ZF9\,/ XP)Z>@OK'!#/J4IP&+,D:6
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
MR+UK'?-EFKT<0AR>S]M)S1]6VX._O+Z31:Y2+$$SM%C'5-9LLES#>$+9J -
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
M+(8LF308DW*2DPG1F$A;0CQE2O6IK3[&*G2$^VH\2E>(=2TUJ8TS=$AT_@(
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
M&2:50A8:DV[]WO>ZH+]X?0@F]'"WMM_BEHMZ/:F>0BVY$QZS2)$5G\G.Y.1
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
M7>WYFA@!+0QXULGI2(1L_8YO1G.Z/-A3\CVXOR\1IG@V/L]KH%GI="F$JL1
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
M K1:U?H&Y@XXARJY[<&T:"3CARZSO5Y/W;-NQXAK F:227C- Q/:TBD70V3
MN:BU1,9PT,J;U@?(9C0/E8C>3-^K/&HC]QXN^M<C6[:P[8"MI]Y7=^%ZF/Y7
MK738B1I[*.#0)/$Z!!^4)(RFYM]*0Z^$L<PJF6R ;"5OG2YW>'+<TP_K(;BQ
MC=Q;Y[??PO0ZS<9DDY'IXY<MG%2R=?@/\Y[7@8!),?#D6IN<E4F!UY+E3A'X
M^Y]U> NSG6+&_4FU=;+[+7B_TF>?D<+X%3AGC9(F%V:-X$R;P%E \I934MHY
MS+J$M)O*5YYTL@K?1Z*]O^-+</(*G XH,0,R!76R@9:6@<N<J0B83'$\%+V?
MNN5WHNY=)+HQIZ]5^<+< *Y7@+55/)V#\[3[9Y_JE]BZDF'79^U7U-!DA2OU
M#29QI;.2(HJH!;V?T5J9L+9GL"E:/=CYJ0U,N%N/?329P.C]W,=\_/GF5Z["
M'8_^A$F^<:2!QP)0)'-6!6*G32R4+)@!E5,Q-DK3/'UK;]1-3-]=$+RZK*\T
M.9*+?,V/I,+J1CX?3WZF?SL;1.FMX%PS*3(R+65@'JQD9"5R)1!=2LVOB7I:
MRP/MSX=C\UJ[_*%)T4-]R,[KFO_Q3YS.KJ]QQ2!YY(;'S(KG=$QF"+4G+&?(
M'3=U!F[TO024&N'_B]2'4GYKPY7.TN%D#GZ!YBJ8]_K#_$?G,!J0S18 0F82
MK:DMM0H+SI/%)>BU X@1L5MOE'L?]=VPJ ?)M^Z0L]Q\?YZ,+S],:T_5X>@9
MF:?CSXB_C3]<+N8B#"*2F1W LEAJ#;%"Q8+EM1F3C2H8$T*QG<C1[7G?%T-Z
MT$'KFI9GM)%=U'HK.I4+#F>7Y G2M_3=[Z./M,MA7O!Y2C]YBZ/A>/(KC& A
MN8$HP2I.#CO/M5E-F2=& KF*PFB+4(=@=RMSV0?%]T6I@^FK8>7,UL ?G9^_
M&H]NP0\(6H5 +P;)CNE4YMLI,O!)@PTY*!N:TVT]EK](UZ/N&M;AS.&_&*4)
MDEB>XN+_7XS6!".>7N*[\1O\."3Q;5CO=(!HLDQ06!)($@036=">%H5"JUQ(
MF+I;F+\9I.^+B ^CR3XJ?W85XM6+-G>@IR^N+,]_X?#]&2WRT4><T LW_\NG
M]05=SO\>>(,R$PR&J;:9$K+V#ZP# +-+PO <9?-1Z =>XG?S(GP+%&I>$#6/
M('58['33:I]]PDFJ.\*+T6PR'$V':;$J*;,SRF4F<IU:;36P8.B$\H*'Q#70
M^=3M%J\WB-\-L8](TPUKMVY6M<>[^L^YD77S+AH9(X0 #'A13!OS_[?W74UN
MY4J:[_M?<@;>O&Q$M=I$[[;12NJ9V"<&3$+BW!*I(5GJUK^?!$U5B456T> <
M&FEBXD:K#<^'S ] 9B(-!V>5AU2,,%8)J>QN7GMC8-\@5T^DU0X*QE:1B64O
MN\VK(]M^8?'/%S)]-YZ%V\?__-5X.EO43#X,X7X4%IL.HF;%!*NA<(N@7 X0
M5>' @F V6X;D%32V1'I9V#=#_?.E2Q>E<9VM<F%VD5OR:!X<'PA41D9&SK&H
M:;?1*?"2T1$0BDT&HW:^]3MIORO\ODW.AT!=U/C=W,[_'<R;%[ITT0>>::^E
M+! M3Z 25Q!*LF"M\\8RFQ2VKE#?#=DWQ\\.%-9%6>!.V^A=^.<'')'.9HMY
M@D^7$1@W(6>$(FO[Y.(D.-H6P#$JSE4I4:93G*\O(O_F>'D"A;>L5%S$S7=9
MP_J)7L_ZZ:OP:4AWP$,GJT$,3,3L"F2;29:ZU/!+"<",=4:@( GOUN.E(:AO
MAI0GU68GY92'RG'1I/K7T70VN5L4B=8!,^\^A-&!846Z5E+VY.J:- _+^%IC
M1ON5:69M<0%9;%Z\>2Z+_V;VS]E)?B_:;=B QS<&[$P2BZC22A(#1>M).3/
MS#0H:3)X:RSH&'(TY"1TT%ZPI[5]WS[G0)H-NZ.CY]&!CHF<V:* L=J)@+$
M 74M#S-<^9I?L![V[HC+WYFWOT(V\.3@1\$-%>POR6>Z34"+>G<OBXI6>-"8
M'2A2*01;XXS*<9*,#V*W49Z']9 X#GQ?'2=.S<&3*/O4S2SJH*$W=5WS^NJ"
M%F5B#K+2LJ91J=J!A<YI&XH5+M47^EUH^L+XM/L/GD%KBCYU/3Y6YHWGZ,U!
M+,LE=X'1<&[BHT_W/RGQ0.&OJ^\(R76HR.R-,(+.P/E@<Q71U2Q(38SD*(3E
MV9864Z,[5^ S0P_;ZF\?@376V^\DJ8]W'U<#UZR*C'L)6N9J[M#%%5+08*,-
MM2]PMK+%[/:O/MKO2+N#Q3YN(;/&L]I_#_\\ F*LC!B*!NVM F6+!!\<@UJN
M''W23FG60GF//WJ!RCM89AUTXEE<X_0OSX^2>FZ4XA4D%1@QR6CP&348;XH4
MD>LD=6,3_2L WZ8M=+PN.IC'=+@@'I8QRK5&[X_P$5<SUG=84Y?]OQJOYS1]
MPXZ@R;[!KKYTW%6+L=9KH[-:6\UK&:%W=8@>^=926,"DLU1:19_+-\O;%UJ:
MG3EM]U%M!W2]?_E\R,Q;67>89?&B@&-84U:E :?)7O E!1\S&7^I]?2 K6#.
M,"C;N:ZW)4T<I:@N9K'B9-[A9[1\-U^-L,X!LV7:D(&)=:"*C^"<5B!T$=9X
M:W3S/+ M4+ZSIXF2.CA]WN!T-AFFV3(S^"_2R_3-V[_NP3F11,B@"R=OQY*W
MXX4J8'ADT='_Y-@ZG_Q90-]YU%!A)VW[MI9$<#.=WGU<O);^1?_!<+2L+1V.
MWM^G%4S'CWN +)(2,'?4*JXUON[:RW4JR;66=,EQ)K(4Q>6H9,3(5>3(#3<B
MJBS2\RWI6B,]>1L[%Y2R&&OW5$NF+&>2]C$9M08S#SDQX>WW-G;W".Z5^DCQ
M;X;3?_T\0?R5U$IWXJS6CP]*S(XI\A "UAB;+'101K*N)-K"=4B6F=Y]K6,7
M=88W5UM^-TNGZ80FY]3A;M,"ZPE9[_353)#Y G-TAA6.4(H6M2@\0) !(<G,
M7>9%"=5\>ES7B_J^#TY*DU.$VPY9X'^,:_NNV^'LRV*)9"?'P!4XI<A)TE:
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
MO^I&PN>^AXZCSM-=8LY^E^S6VJ3X+-#9 %H[TA93 EQ4%DJ,1GEA:AOA2]M
MU]:8YT+V5GO"/=UV]GRWW?J# 1TA*4CN:'G)DA5<=>4" H^)11[JF)G+N9JN
ML"?W("N9HL\6)*9J)@ER4\AWAXC2&2ZC5_P"%73RCD:[CW"/=;<;LDX+1@;U
M51^<Y!I*LBJA$M:SYK&[5N!/VZ>HOTOC),H^E[*#K_L_>,UD4DY "+63(]U6
M$$.M[*"_3$9@C+IUH<%%M!_JB //=AK:1Q>7TJEEES5][S2T5Z>AO6C21\N6
M0W1\*?R-3"G/1((@<R++7EJ(!A-8LG]MS(KQT/I\O!S>[M5IZ.QHNX]J.Z#K
MH\S-.?3I,O_76\>C-A%D5B0G5WLK"Q[H>G%TPSCZZ^;S.K9 .<-H0N=Z'K=7
M4M?]AA;9ZN_"/SB]R7G^0^'VU]$<]SQM_? L[%U_^J@TZX/PK^516VN84'2P
M8& JHR4_-]G,T(0DD/LXV/4CQ^UI^OU7$Z2??Q4FDR]ET2SZP6EAED<A&%F)
M,9'3PI&#KSZ,SE&)Q!-'V7IK/X^H32GA;^/I=-$B8S0;CNZ&H_=_DB4^%^OT
M!Z1OXB/ITZ8DEWZ8!CHE#%F0H2QX!J4R R^\ 9N#B$HGR5CKUBE'P.W_+&S(
MI<UEB-VKK8.4X0.@_TQ_'+X?#>HD4F5\ 1-JCS@R.\ E.L*C#26:ZJB9UJ&Q
MP]%^ZWP[1&G-6^R4@JE69MWC>A-F6#L+C-+P=KBX-X;3-,%9_8?+*KYESZ!E
M_Q5'VR&@,1!RXF1\1 ^^1 4\1A-8$9EC>>D6;@7F*CAU$LUTD&VZRQ*V=5!+
M.)T^=*=:K@=ERI$G!]JP^4@* 76^,IFDC [H4LCA:FU<M%[#51#T+!3<,#US
MYPWW*LS"=#89?_HP3#]]KH[9$K<64?LZ-" ;7KND<7"N%- R"$F;SSY)&#OB
M"-P"XBJ8U:LF.LAA?$#\%=H_QM61NZ-%Q5M<'M7S6E;Z6W<3,A->T2YYC].!
M-EJ5H#A(KTAFDG$(:=%%V"FGO#6V=5')D9"O@G:G4%_##+Z==\T;O$4ZBFO?
MCBE./N-TN6L4MRX7Y@DM69^T:WQMD5X@%1.$+LKG9)J=7UM 7 61>M5$!]EM
M6S8 \7OTGI;S(Q:<D,CH7[B93G$VK9D)]XW)_JXQQ$$PL7AF2RVQH!,X:EM[
M>TB@G>$*!F6,P7Z.L#U07P7Y3J3$#K*]=ME!OPQO9\/EKC$^2F&R &2)1":D
MALBT@N!+2"0KD5SKC)0](5X5P;I4SU,VN>ZOQ?G?^;S:!G^.YGUQGNR3Y6IT
ML(FA2Z!+;0TJ@@=GLP5$HT1FTN8BVEV6^T"["I*=@=:><M!WSD'Z1Y-J$?PZ
MFA_<<Z-@Y=.018!:&[ B>E#).]H^V9%]F5CA46%:#WL<0;CM.+XM=C72QX:
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
MV+K9=!/@_9^V)^'L^AW<O]*[B/FE#YCO;O'/<N1R%CXQ*PI3\1ZX*F2(!!'
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
M#JB\NM7J#:;X/QNP)#_J";BD93M4OFH]M(3:"P7T#Q*/N2T5DOJHKFW8W?4
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
M#:M<..[\>J)*:W33<5]$>(1?<$UXC3I<N?;U[IP'P$=KM>0./M*#(= 4P1%
MXZ \,0..DQO25NC4EP1*VMU&8Z:R^&X_JH7#[]4*TU5N:N'"$%!I$WO', '1
M0FZN*:WXN0T#7(G3W&ZCZ*<MC2UT)'ZYZ6WS _,HNT6))P\G\G<_2!)03Q*]
MU8<:&&(I34"+!0<7F,<Y9$3M^HHK_1KP\Q^Z4U\<[%WJN+GPZ6O-Q;&:-FTL
M86:=0%+6%;ND\?7L)URTN/ZFJ!4O#H$"KD$RV)2&AVB#L"C]M"CJ7)Z3-I6]
MX@L'5HM,M4-X<[F.H+;6%G]"R^MC,$MZ[<4Q(E&HZTFJ>T IJ.][X-=G89,N
M]G+IYA[QCN6G/QZ;]PXUT)R^;O$^]O*=XD$IL7$NMC2N@X@3:2"FD@$;\NW#
M,U[/?# YC4_"SCUT5[U>][/YQ)U;W1)6!( +56($X%E*1Y=\3"#&"-C@$[?<
MI"HMGU2$MH3/7_PC?2],KI;R3_*I]W=:^UH)_ N*(_8"(M@888XPBFZ\Y=#H
M<8DN^_!IZ)"B'G_A/Y\V%Y.)8MFHGQY3:VDLQ7?,4V I(Q<RM@5X:*C7ZT%^
M2UI7=<3.?L9:H.;B[-1 X0B\X4;SF6/(F8PP8(LCU@7Q<1H!U$5WB^H[/[D<
MSMU5C!A;._DX<??8Q3?J/WD[D]=1#3@@! X1998RU+!Y<+$Z7?-!WB!=N$^1
ME%%%?7BR>::HOS8;B#M2NUC1TI+3(<T%5D @ O'DCQ$<"!.FY;H(_P(;B+-(
M<#=NM8^Y&_L!FKDU/+G8D%V*"R8+8%RF;(<W7Z+#-YUNR+1>"?-*3E]J$@DL
M=.,)SY9X4G=0+(P>Q1&#\NN#!18DBE_KIR$W!D-0%23@A#.X&\^2LN<(\?X7
MN3U'(]Y%UK][H&I(WYL#\?=N!'S>(:C*WBQT:[C'Y%'%Y1Y)PS/W-3)28)!2
MKT-2[B :>D@0QV.HT+?Z]-.];GTEI[7OB3]'#W]7G%%YH;ZQ/4UC\93LJ>/Q
M;YH.5(DGOJF5'[SUA(H4#K;D YH**$2A'[0QQY$-\,KUN;/J1U(7-21ZBQ[E
M'7'EULB-[#<"IEA*94P3#(%AP;X=;\_4P_1N1FS"N5BA=-]LW8W(%>_N5$ G
M1NAY;J6.GP;L-W<F<S)!HL#5T0#&E>L<RK''A:Z#^GVK]RD$\, VK \^Q\_8
M#_:$/)T&B>Y.W$[%2UTWL<_S;_(5]@IK'H_AJ=YU4FI5;,_E^=]?LR[Z_Z.T
M-#:U-^5^9"R:/BT\E-MS@,_=Y>#YY Z>J]9$ ?H02[*/(UA*U[*_?XQ>L<(-
M7/LM*%U#!9:<,CW^+&C>E<$,M;RVW. "TYABN(X?2$2\$2T+(;S#F+#<P;Y:
MP$I=58SO?D"TU2,T+]/YT+N&.D,Y#PY-"6O:K\[_CYM=O T+1B83&MT[JKD9
M"2#7TH"^)&C?S=CSRWY2QV/UX2'7AP\3@K_8B>"5$K[__/A>W!:KOI-!(,P;
M1R3YRH*Z--1L,T>P+.C%=R]\JN&/1J<8:OC$1G-3/B-R?V[0V)>"PN"*\R(T
MN5A9*^.*/"MW""J2U; 'P6T8"K2@_Z'X5M\R7U0">M^5_/RGX6*P/SP*)[/A
M?N#M=WD/[R9^!9&;S6J(EO&SD @_0 :BFUE2W!SY9@89V2C7A1!C$ZCKO07?
MQIOF>M*O+]PZ$?8KXLC9_7[7"WI/U1^X8XLJ)0$A4RR99"MPCBGU"U>GU4=6
M\?;"I%'L[DWE*>95WA!WHFKV>WH^ IJ<'GD\/F SV34^-8\#O C34]3F54A#
M\TR"I<!]FH:C= LJ=:W-EEI]WD;5R>3\ZR0'2L&MNU,I]/[,$&F)QU._H2CB
M^3V"-H]EAK(.@;NU,C>SM6W!@J4GZAW%^ISN<=]9[T&E<Z3FQK9&O7<N)YY?
MM/[PXUZD%6*\CR7YI\L+ L!OS).85H[P<7J4W=OD$U.Z@0!A9>)IZ,$'X=J=
MXI\Z?3QZR3_7C!0FGG\VT3D@?=B.ULZ&LHL@>*[+EP>H*:#@^()OS ;B2T.
MZ1]>X0^.'0G7?6:M?*:W-,76UA5V%;:K81_W7R@(DY^3OIH1($4R#PQQ2KU<
ML3VXCJ.012M)=7"65#U'E ;ZT/EI0;UD8626(3IMZ]LQ0-IK_E!H2_DSM-[@
MN[K94@57SX\1]UYX#.==@A'[4*"9(^?<2SJ)/22R#?MI5.;^X]L*Q 9Y9-@0
M,:0\@W(J.LU7HPG4>O8=(;])V(7R"49)7'\>%M8\X=_:(JY4=UOWTZFS>R+5
M+HGGEGFZ)O"3(?1QQ,/ <XR'$*!ILM3! #K1D3,_$A\+V,V=IKL^'VT(_+?X
M>Z3TC<MWUWMU$%H=NO?^<9( 7WM+;5W3V)6G8U5+,R(2.I%Z#ITOWBM88&3^
M(%@2=KU_3D'MG>0,>44\O0+,>[.T1Y\5*\B)*E6I'<J93A(@/F5)T.4Z$)+A
MT4KD76 N^5R:PV3-1K:=]Z637;?"]F?2=IWX6IKCJ:3 ]>!NR3"WY;YX!R"H
M@Y@*:9)6.L([RPF "-R&=[7WA?&]2%U(-#OIU"$";/Q!]]^0MN=]R\[!A:"4
M6?L!$Y;LV)+)7"=GM%A]/&*M0?O!!^!=%FQ1M6&!=<Q'3_P]X_<M)^S$3EX@
M-^(2-G""K(/0T#'@??<IOS&L >;5(I/6T"XSHK>IS=3G"=F2<+PI*6P8F^SC
M]&6NE/> U2,3A1HX1R@1ZE46JG@)NT@ 3F_#5#B]A3%IG/V>3CAJSS;LMCJ"
M*]Y6V2RB(IBG)?:")W;-0"-$*;QO[<G4TQY8K#-+(67G\ #TX!]*?C:2\L37
M='+KIR__&YPDJ+C_^5^"0\L#W2\"1W5,(G+_W<<NY)$BPT"(#"9=Q,[L?"V0
M=&4'C%A<3"=Y_7 *0$K']B^)Z@\$Y-W2NS)'GFL( KN==[OZ_?Z8'OE0AET/
M1G5[R66Q+/QH0\(_AU$_"LL>N-^,WJQ*I+U)LH$KIW<E554)6'24P'L0H 69
MXW2<@F<_@'R7K49$0HZM@%PB,TJV8;@.U( /T0KZSP*D6<8M!2#%=YRT#1L5
M BLYHH]VEH,E#=T?L:38+^.EZ,+N4PU(Z1 SYS0U0#_+$"F)FL7Y^RSLK2UX
MWM1<? 1]IK%M=^D3A(#R[CMO0V%LB$TG0\PQ')_8#F<GA^,N#: 40UK2NA$*
MF'KG=_E=D\T.FI\+*KP.GYXZ]RK73U0MTU TB3E?8Q..OX^C?()/$Y;XJIEG
MP#X&?3+>-,:/XB37,>6K-+)Y-+U RFU\+4)WT>9VL<:)2XFLSB/N>;NGCK!>
MT,E=I"P2<)HX=W/I/;G!OM-)R8WNW.6L8+>H!E1D-6RVCQGE2&?M[7>QSLKR
M?I1^$?R[]-#GA(8B!T(QRF-D8]K*5V8HMK=8$&0R=4(*L0^INO:.'GN SP2T
MM'K7E@&L/H0H;>VV-^7WFS,R^6$UKN/WX)'_KQ]6^]\OW'0ICE@09)F;6$W.
MI*7AVYWM$&R7JJ0B*=NW\TC['HSDF'!DC8Z >B;GD[*@GINFQZ)R\H'>%*Y[
M,O<_X"CS0Z ^L1.B0G'4QR3 "0[N-UI\23D2KUMY =<I1PN/.OGDW"G/LI#
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
MW-I94L7]OLMCWZ*M9LS&+\F[H,R<%U;P7'%8W40GCG ',9^DN-],]!D*G=-
M=&#M37L[G1MU(/MA1?(WY,7XM:RW? ]=KG1TQ: +G_!!<(0*?P6^)K'T@1&W
M5O2&ILT'$JU==WT?M=R;$V]T!!89H0=X,U =F$O$6/2-[H,_U2F*#HS+A;++
MSZ_@K04_SZ4+VL*I\[@'A11%\N&<"-S1JTR<C%#6IAZT2#K/]_G/F4]L#?ZU
M7)(.0%M>7C<K@3'12Q6&N._OB -^[#(X ,C$8FTT#1]V\/+//<:]+>,2FJ$W
MR&F-U;?S!N@6:',]OG58SPI=WD1\<S*Z"JL_=:=-1'\E'C-@#N@ X U!>C&1
M+1/6:G_Y,OQX(]WCN,QSP9]^.6;T_^(39L +@>-ITAG2)W6V=N^H6Q.ABA1]
M!W/$#7+'ZA%D.K8!>K4RBZ^OI>$=5>JO(^YL83H9:TY3(3T45Q0SB1D%INU:
M@D8UI^-3KO[ RDU1)=S#R\Y\@>74,874[)M_/5!7]SZ\;=5.@,!DB0K.+BP6
M4J>A*38T?!( DY)$A2OUX'(RVS LSW_[E<"#ET_W'=F/#ATX-A/XL5'R*_&7
M')/W9=T2>QF"+2V87<$K!@*M4.;EL2>FD^K0*#_9!V_$7E\J,Q[\=G#&<6J$
M3UIYY_AI=&(4.A\)[1E^4'^1@>)53P!H[PAR=ZR+V%=9MM"+<+Q=63V&ZFLB
M5646-,GB'TLZQ(RVW!:X8N%/3RQ\_2<''7?'#2T.19Z-[K3KIWM6?BZK3%:[
M9:80:]5G*?KQ%4+XY(%!!*"%!B/4V?G-\""7HO. .8_7'CS!4 \W$A6>P16%
M,X. 3@P&M*.3&2'-!C,]%27BJ,F?$SK>H'EW]Y?^B%,!>BH:/PZG],=?*VIE
MFAP;AND8>3IL*!L G?W=(OT?AE5 -F]:;WT</513W7"KX#L]%&TAL\';KI<
MQ9@/\F:7<X2RW\W?L@O)#U]PKQJXDFC?':1Z623SLL2%I[\L$,PKD=^%WP+D
M4IS"<#U,; 3L(7/:)D+&][S+?,ZY_*DZXS/?)H/W?FGQT!A,MQJYZ^6EPDID
M_6@(YKP"_/ C1[@B8BR3^0EUJ(:!.@NF/@J][]\BFZML$/7<<7!5R=*^9J D
MK[32^^\^7YVE=[N=)=M0&;M\,U>"(!7A=KPB;H10BDXA!?:BYC!7OT"#C&QW
MAN#+^&?UEWR9'0%O+U'B&R?VQ)Q--1Y1?";_24P!P<KE[<3H7(8,A[GV5)@4
MCI[Z3OIW,W,]".ZR.\_+Z]UYY>'_Q\O?8\"P5<Y+ EMRV+ZJIOIT)#%!8==_
MTG3<L_^5I6?:V?+QD?_)TAC&:3FYK?@0T,PY5? &.4PA-YUE^8%2A(OZ+KRJ
MA.DFL95G:0&X9F8CI,O0F1(1RB[$'JWKU]ZK.N.?9'O*^@9B(_9+#-H!\\,<
M"\.7((S#T>>KV#+^3)4:*()VWE^X!2_D45D#KBS--:FM[3F<X6(U^S!U"IT=
MK*+U0>PSY>%V9!1 :[?U:P)BJ>5V\7EIN,$ (A3X^^*2:I:XJ3WWUA?<\O *
M">[L5^[(;8!\$$U[/Z'*>0KX=]H0MUQBG_JL+#?\FJ%ET?6'0J^?\$JK^7MH
MIE V=ULN7ZV%FL8^TD>$J;Q0%'H;0(.T/;XAHU"(?R)*YMV]R4<+'V776!4'
M#/;.'L!=:PCG57UF"Q/G456HUN6$H>]6=XI5)T_YAJ4_6"EN_5W@KZ5"<*P\
MDL:=*U'E2CSFE,+N?![NLB8(+,:S]KK]A.:ID\5%#:C^W>!/"T8%9OM$5TJD
MTB>\B8^I>)$ ?CK:XTR4/S/CO_MW'&Q@S\OG).P&[5H$*YY/85*6I=V@^!!_
ME33M=RM,<D$>42*+D27X8'=^U@W'BUE1)G_^PQT.PMRA[ ^&:?X/X.@.+&QD
M$6<RN$B-AK(ZWH%6<T[,88UE?S#,(G'R8JEG2,3[_YL\\&JW6 (SVSQD8>XP
MAME$_"C#O,M<A[6\4)('91P@R[,-!>OGEP.FB^^=&'3;N^MG//F?H;O=]T3.
MB5?(0QP8>_WL^+@M<&07X &_WH3#NDR[!^P3P1^L Z]O'<[0& OR>P@J^U(T
MG#D?9!MXBU\\?4B?2V+@CHX-LOE85[C]5+%5M"+N^UQA>.'TVS 3@_YTZ^75
MD8[<O@=/G[*3O!-'--0T3[4&Y_"TSWXH'VQG_H-_YBT;)F+11VV+YC8(\7K^
MLU FH]TR,]V%6/P/.DNYD:3GK7F@^XC6WZ9FCEWZB,KP( :<HT)[LSFJ=DQ@
M$]&L#R>1%6T$L LE76\\3834A^GD#W,H\095%ZH_0=1$97UB)R,P(6(7<RW
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
MJS[6]\9<J_(S1LOQFU%%B&:AH96KQ=Z1SR"<NF.<2+1X'W(_TVK 5%@%GV#
M-=U$-%(X$G!79.KA_P>1:!D&J5EWC,UHLRG>I5X'AD*P7@S#T\[]5P<.I=H%
MKD8R(^#;0F%9D48H;6\C2>"^PQ%\P^V+9FNN]( 3RW3@!J/G\YW*-3XKB6NY
M]&FLD-'AM-Q(YS$>5A$DL<+YV'.@^R;B0>@7C-NGB@'5"SG+S3F<H>S(G<[.
M7<Y.Z99ZZC )F+=24Q:1@<D=5H:!Y(KS%F4;L]T9)7D,]2E2(W)'^/,6UWHN
MKI 8'C-%3=#5U55K5)S)<6-&*"*V?59'2 PNH$KEV%)(ICHGACA5S7E2'J0<
M?N:;X=](W7@Z3AN*<]_WFU;2K#8D-5%1WG4!8=-F36F(;GCY)LJ(Q&R$B>X-
MTE@_[25U\2_+"7NXBN$<JZNK4N\O'_BN*EWQD=N=$',CB?2F::VZM"=/PLPR
M[PK/],;#L0$G5'[:<DKY)B(!(V*R);RPB;OGQXV_=[Y$-E/EC*R](GSW;1W?
M 2>+UV15E?]P/0,-_E\$2AAW*Y[%QQU=<_K+'> J0_'3[XM*9FKZX1_:SO9F
M:#&S'#M>T@5K2"NOU91(>_!/!/\@B-H_X%$8HD)[ A/>FQ7ZD$H;B-YA@9.T
MF@KHY=367RGQH5X- JA@S&LX(!IY)];$\#[2IN;J7P]2P/7BU >[O ^]/#\U
MG*!S[(6G:A?I^-07@"D-6_HD+-D 6@Y7>[@^A*6$E7K>M%&0<.?/XM&D.KRT
MG\&#G(D31JTG=6:?J'=W'. [+C^'.=MW<ON\K,.\D_1<O\UA-; \D/E7[[;&
M%=,#\V:J(<U;MAK%8.386+@)\$5["E18)DTQ-A'T_2"U'6<T]*I"=HB2G61R
M)#R'ZZ(B\"GQR+%7$Z[7,RIN'6Z95ANF#-@+MQ+*-A%L11A'!3HY3^K/!T\'
MC1(FE_%8P4(/M_NYS$U$$T:>;7MU;]>)WNS]\?:80T=B*DKY$--[&KY7/M .
MR*M(&<_2$RW6BAV).I3>KD8(Z2CH.RF(E6-=!\B\TO+6I+'S[<,DF7IO\-A:
MD\F^077?U0#,Y%()Q7LLWS,KW>8^\>;U:S9ZT2I+UEI=$<0O&J^0<#C&DD!_
M7;8TLM'?\UWX@A-4P5 \W?_VDK:1[C3IT5_K=ZK[!4.";F1]:]QN<C[S.%D
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
M=V]FG1P<JGWC\W%ZU-;6QFXWV.3-<?\W!\J55RT?;'D@KNW[_"GAM&AM "Y
MSV0"7KWAM="'I-I6=,)QG7=N)XC=:6IF4YJ/]15X,&^X*\2%[CX_=POQ"7Z1
MU)E,TL#/AY&DKW+*PW7>CR\]O9I@$ .S-._%C/"R5/\3A+__JPA;%&,&4J&T
MTD7U9GRUEZ+84 UH2@-PF]R)Q9$ M3.S#T/4R#)OCZXNQ$4KS%L>Y-<[&-\]
M=J<;>03[R$28,0TA>M2&85@1/TQ(_-"H[(HTW"K;U:%&4WS7CU>4X-M#*K_1
MT@8.\JT<K_3>S"5=J%A4&'/2==*##I;*M4.)=Y"C2!P$#!<CL9&5AQ!R<%$2
M.HYVE9!] %:+3XOQPPUM'?$_MM'E')"_),"/.GV4H]N>^Y?03]:OAY1G,<?I
M**0;F"*?OZ)+/<WH80(GM _9T<[3,S%@F$ZK,!.(:S0AQ-MWV]G@[HS]+K=I
M\_@X?N^;<DU5HE-*W(X";UQ%[I%0E,,S1-OEB25+*7Y+95O=4,GS%=PEEXME
M#XJ*'SF9\!XKL.]E9DTH)TV:E8XQ>C'*^[-*&@,GW!NK*4*"XK_*$4(L%Q@\
M'-3^XJN/NS=M T=\;V@U#2D7ID@F7,GO.FLF+X;8!\+/7S'Z_M2O&%MNMV<=
M0<YF(<O5P_?AL.4]3P&">$H(P7RPVL;_,.24A_"]W'B^T&2EBMGGAQUNJXOS
MS(5GTW@E&.P91.Y-LB5)>B6^ /'=GH/T@<.)I-21I4Q*>%.XU/LA%>Q6/E"R
MM7O&3'Z)\PQA\?W=.><'O''F (B77@L/(861]Z%UV,UMK]AI]=I@E(#[/N;:
M,CD.BW#!CWMF& _)KZV5U12T1DM4)CT$V%G?WF??F:&H<[1?=H[&SD;/L"AM
M%5KD1K;5#B=Y:$F%F3=&7 G9R;7ZP1"F@(C)K<@#\MA''B(M_.ZS=I#61(K;
M3%O2*1BD(FG4AN,16ZK.D5'?KH,+I7 ^*NN^JZ[8[]-8;4%2_HH7WF3,I(,)
MB"%X;Q!BOWG-UD9K\J!_$Z==R^U>]GYP*W<+J,%<N7'5QU\@/7[^2X=YHB"P
M6TP]P 0(V33Q=E4(J'-0ESB#[Z\?'E=.Y'P"NSOQ?#H,40CL?<I'MM1A1!LH
M^P3X4#F]"<,)>R_!7Z1IY1OL5A&G,AQ;.EWQE67!/6^J(>SW,M0+V2(/F<V8
M.8%U[HU#"B!G<Z#57^NO,P%1A(;[H^6[@U4:R;[.>"VQNR(>PAP1%NJ<,9^B
MG0 YP=/L1U#!F]!J]14A4@_Y3['@=R[9Q+O@T5C\9U(*N1(?243C(.%DZ\SJ
M^)THE:GR(_X<1SVS-)XVO)@87XNX)\&M4.)64O+5A74AFZ*E;A</F4W'<C7R
MN94J,-"D'I-@=]A0Y9=$U\L%'CE/C!<?@HEGZ;?HZ8ULA31Y^EL:"Q%G;5>;
M)4HT3LF;BEO@GACKX$$4N!.0,4R@'(7#4N2D5UN(:7,CJV9$$5.*#5%_5N^=
M6C4^^P"E]LZGNA&X [KA>O^D7=L#K8ZFO%=GCI!S;V[<B.0,==J%Z!0 )=EB
M, TC2AA>9+\7EP,$O,?=S@DZ)W7^>O?&_.63A,;"N8)2-QG65B: G]Z?19C
M;P_2#(/?"C)GCKV_RB7F.YN''_(7NZ;C3/AF/,"?9IJJMT%X6_0K,UJ:=60#
MG>/>^F\EV3>N;WM1Q;>SZ;(J+,O9Q+!%\.9F,!,(]="GG=S3I]'V_WS6QK*#
MEP7%!(YH)S(!B#J6PC^$; 5]0/9^6V<<JGYL>D5PG^7]I?F7YE^:?VG^I?F7
MYE^:_YCF4>$CN7>'WIY]=CXP[W^QMN+4T=0TU3!NUYS4<98W59;W?'WB\R.:
MQ_7=T#DNP@+A?G)*'!2H;M6@WS>U 0T[#>-/-7?O5S]7/2KZ)][U=,&?O!,
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
M6#W_AQMQ(-P^VE> T$XXD//W2;4+W8S!OKC_$"F49*5(C&Q9BC1-'L3&\9J
M@M;:^/!6M,PS?HWAXZ_75!Y+6N&6Y8[3_I/[U;2/CV?I;R&N,V$0$'(V:X;/
M;YX20K)I$6<?5!%C-?[AS 2ND^Q*,U^9ZJI^B!/P:-,1_C*\<O[JE(A!0TU(
M"S&6W$Y46K6:!278\_7E5=6,8/AA#>WVQTEG$OE^)]V]]2EY98?SPV&+K ,)
M7&IKW#*/E*L1:DR@Y2'D$2A2>(;&(\(XNDUJFST<+H9:O53J,@WTP3E\<V10
MYL/WA3FY#WMDJV0_JK,YG:P&1VMX7DE^!OIMC#GQMR+_E(P."#<3<-0PH4CK
M-U,%MR$QR*J(6@]\-H?KBR3YK=_.,0OF/SR5NZTG)O1TL(^R- \O0J\R)J&U
MR.8_=4&:223DW#XE*,%G;1"T--J"!+'/Q^?L?T@V)PRS:GQPX1!MK#C?P>Z9
MI&]^QWTA>TR:G$A_K@DB3/F2L?1BY&PNM)*,)F5W!CVQ<=MY"A50B1RD2>7F
M"IWJ4^D,?F8Y?D;CU^OPX,*=FWC]--'[HLXT_FP\5S+US^G0->(0>A;CA-W-
M_;GM$%R#N!Z^6A8U(?6MP2W=/[/].PMUX$-2PUS<EZGB >3LI!U[3QN6>'W]
MF27_D:(DF.?>XO[3(T+N;#A#[ 94_9!5"K@6)$5!G<9C,V?2ZC56V>&S'"0=
MK4(W:<L2)#WJJ_<L+!K'B7Z:G#!*7K#&P0N/I@$7)KY5/@E_N@&AJ(X0&O]4
MK'IN^AO,HFGCI)8Y!PD3EQNFB<UIL>]J-I1J+VGLECDDW.W]^CKF%T\6Q_6Y
MHI> MB7)LC@0CZ5HY;99!K%6G,$2]PQ4/T6*/U1ZL?;K]C16M1I+WS@+H:AA
MUG9P6.(]],0$ 1E]%U,T?:'Q157D?/R9D>W#RBA=Z&E5UD^WY;#[!H303C?1
MJR&SO[#C^@QVK5P=<G9D-KM"<C-#>#AW]UW3B,3@ZF/%.T+:*\7"ND'?K2Y2
M;XJ]=H(\@(:G(8G&V91+V#GT_@P@V/P8KDJ]1;FSV0GF\A<Z/%HM0GI:6VL9
M%128J)*>>OL)]\4)P*"*Q8$!,JXLSV <=9H-[GDA[@<1VRKWI#,\P/<FM5]P
M,@Y@C9&.J./+VHKT5PPA&+K]26-Z0B%Q1[<!FZ23ZOJA/'PR.^2K^^8%!E<\
M43H:XK$NR/@*)AJNOZ@00?/!KU,RI:-493PBR ,J&4:N"GE#SJ8[IZ\WUGOC
MUD/2KYS7D]O.;=,6&] \A?\&:46 JX[?=7VJ;'WO"NA$F_!!71K?E1R.ZFP"
MEH_BVSPMVD#RBO6'/5:9.'*S-BWYK>2-01^<I_NU]YA/Y3\4) >W-63*%'[9
M5;1H/NC'O3-KX67YA25._JDM2Q<H96,P 0@3X+'UHO'T=F)X,V:?YFM:_^1,
M@DU8)JD=I'W97#?;.MO,4%W-)A;_*6'?K]&')9J"]E7L_^2ID ?]?E&DBHH6
MB8"F;PEP4.>9XA'6_/L 389U'(E7)N+HAW.8 *: ";S M8&WA,,8>\798^-(
M&J5M_S,-!_][$S#[NVMR&3Q@3F2?&XBZ5(;\4S%]<PY$W^/]NR:+R;]?@J+<
MA.\SA*L%D/6B.GIF/A/HC8/L_#;]]^;M0Y"_NP;R[X85+9"?9C,![7-,8.:=
M_M^UK_ R@;_L_\O^O^S_R_Z_[/_+_G\F^Q]GJ1)+3*LJEC^=+9!Z70MP;4,[
ML\Y2D,1E'20W;,YBL*J!USN"L%+T'/<^807'%IK<@CY%R2!-M(*/-T+X(MMN
MP%>U\;$F!2'Q[S:?760/_6'CJ2_->E'PRS)Q^K3/\+U]SFOYC91>O388OK)D
M'O KAO9S3U>]M"3HDJ6-C6JG7C@D8Z4>N[%YGB$-FZ<2D+&I"IKJ8Z>1TB8O
MWCKR]&1?FPIYQEH=M- 6:W(0#B'^#++ E#_>X6*=GN2JZ-KU$P.V=LY@+HXP
M 7<[([Q^]%J))@M^]>S>!N^YK@(WGZIB#N3Q>+Y7GF(<W,%Q09O"D:L^5#/X
MU;K+B#1"\5OL5'7?%BPQL@\GS@2&L3+$"Z$7U"]/^K;'9BCC@OOGK0?S%$JR
M6^=+DJ@J0P]+ R4F")K=\;EI#U3R3/3G1Q:\.J;($!V3.+CB8>-:-OKVO;1L
M(0R/ZYH#EH)ZW]SMW:.6*YRXFTXYK/0<4J/?X9"IWZI]#GOOLEJ=9N(IFN<]
M/8CA;Y5>BK32JAR2N\L_WV7X>L*=!<L[5LN_(L"E2 /PF9 ,?ZHAH[?F?@8J
M7EQ8<*FXY#INXUCZ)A*57=O;.@-0+-+PGG7.!*TG/\];YS7PU]8P@8])M4*L
M%6&IVZSI)#D(Y8P SC5*/4N16"+Q62!-OHVX =#=WQ-1-.ZY=J/2\9XY=+0:
MF_&]JXV11L]UY'*6BKX#=X(<P^(6V/* 0+8V4 28&^(.B587/TF"1F>>3/7>
M&XGRVCT"67CKWOP(QQX;;AJW*HANQ/#!H'BVENPC+;-8EBXO#W>!;_(E8ZGS
M-WTEXU%O4#\/ P @AVRU!XC.H9I:[GCH4<J3@>[6[UHOK_+JA$XF!3Z23L))
M)B>Y&U$U3)A MB!RO2^''4E\37%@A-U&SE@<8@)1FB>*QK4B"@.=? ^&@8ZU
MLNF)S\8)#S*^#S*!A4XP=4OF[YJLVB/M#*[RFH3N'M/J",';DK?;U8ID!-D!
M08#KW%F3?[J!_K&'T'NTE^>J=JGG[R6+_CI.T&VWG?_B3H:F<<FW[,[=^@@?
MF?MV GYB[JA^I.H9Z@7EI$["T2-..MEI6D\NB<]E;??!>8C&H0%PS%E2^*3L
M05"&T0V3O1%P9QLU]]-:2*1V V$]TEZ E-?45(-^F&-C*U_0]^Q#PF\#!O=E
MAGA*,7]*7@MW&U?&@=,RYA;A5P _UAB&+7X]]ZE%*@P%5>M0U<1PDU\':>1=
M<AL:GJP:MRVV]\O]]L$Z;>SAYXKJQQ]53N59ELH&*DY[H3T\ZJS^$3]EM7V*
ME/<_>P-%QTS:M4$_JB;B%3>M0M_5A;]/\?UQ]S@R<]]U_F>>E"_3VKQX(.5L
M#"G)-;_21"^[8$Y:Z$RM_G<DEW\ND0D0/!JF;$%G-%*KZU^&#,0]7=MCC:#)
M_0;]G9$DU+A&Z^)[2J>"VP#P<NG<@:=E0.*YTKW'D&BT)<6UR)6A0-3++M4J
M49"[PCV[ZZ#]D%:"Y+Y &=D8>:;J1HSD=VYDBT(V%RR;8M8RJFQV._I3L(UC
M9-M;? DM#RIEZ'D]2E *PO'/(7<.>-3>L:M,(,24"1Q%14!^J^Y[("M(9143
MV"5%,NCL?]=D%&J?R_^[R_1I9[0%F4#.$'CGA^U_,7SF_VSSICUOA)! >$WQ
MBWWKI]+,B#]:$E.TMU(KCE> 0CY(4 ]Y62_\*2J#%5EY2)PO)0:WIZ=W/G:D
M(EXZ>99?.F N_CJD='U>/2_$M!CF?G5$I3B3QWS@?OKPQM1L7?1[0=B4845V
M@:35@O@;1315@C'T7.&J^%T:I.3U&JN2NJ52YXI?SS5\Y#N)@6<0/<A_/K0*
M5W+[5>5D_$6.>'Q\3I!*$G+0/?N[[53HVI&30]B_,,$_C?V&"14G$T7.MIU,
M(*0^ P19 ;\#_W44XZ[[7#[MQ#+Y-*6)Q-..!#>J$C<MB=+MO2?&;<_DSJ$B
M&*H_X.H!2/FB -49LG^[Z=3AQP*;ICV;;W_.U])X-AE'E:B7&)WB)XB@N$8=
MO ,!&XL1I(1\A 51<8S3)/YWI48N]RL3CKX;^/Y.(OYRWR=_ X^!XQ+W\WPZ
M0NQT 3B>ZL@$6B0A?R(IB;=-Q%RQW)#'2L_8.NLQJ(](YT4S.TJE94W,P$RP
M@>5%A;*Y:*,+W-]Y?!_H<//YS#$!$B>6=GR!$:>_/Y&U_CG;X^<>%1,#S$&<
ML\<69GM7<HGNU^C9$&?L 1N8<\NT<"U,Y1;WL*NCD6.@O=7N+^< !<F$7V^B
MI:*ETS?6XZ!$H]Y1)C"GW^'A,/<T#X_BA3ETB,M4)/1V6J/;T%'6N AH^_ 7
MM1+KF,6 VPJS[(:1+P78GT:PQNQQQP _&4?@[!0-JBI->8#!"3](\?I ,6D=
MES^CI7Z]WX-?\/3!U$?-OZ9>ISH_O#>:^O#&F;J9\4CR17HFY#&*<S%+B)Z#
M !^SJ#IVRU_IF#O_Y?C.["*7@)[X6DNKX21]'U>9YMWWB;[/1"1BMI9D6'%(
M9Z51=;(S/4T36D(SIGCAQ0R90&>61.C)$5KPG!+WC/OX-NW(5:, [-"C=/]0
M[\_A0@XBYJM?O@7S_=_[_?])C@?:[S^F*?2QU9OJ\@+_C&(E1JJ=2PO59H5=
MI5G-V= N_'JL0C&X,&W -JE+J\"%LV7EB$+']<D91).593RVVNUK;?V/2<?%
M()4[#_[LA#..M"Q-$:\<7  ?G;&CV=!+M$_;P3+:U5<U3AY>6GT5ZW'Y@/%H
M?Q#+T%G0FX0;TO-NOSKGO-]X<GV4XU-E]R/\DE5W$LQ[.K&2Z+?XO53WB%SM
M>WV=,M@" ;P:2=*@!G=65@F?R1J+-0GM3787TKR.G4XLW[ST<TX3*-*.H.@3
M/;1/O_%0E/K\:4#AP4:Z^^D3+9U\$I+'/W#Y)AR^["C\"\%%DXQKRG[6>.JQ
M!<N4C_><M*A72J_O/H!FK0ZQP"./N2).],WVJ40];3LP)[VN$>"P= /]$QYY
M+&[O&BR<WA ?=D_Q@+'* X7B6_>FRFH'+#1TKV75)FO/\5R&*Z70K3.8@$M!
MTSRFFU%E'Q"2P-$R4]Z[,C6;>F]_-@L?5D\N[/K\H\?^@GJ9E'P.'4#K#58U
M73"HL5&0-GX^S$?]--%:D/N;E\6L'SIJ S[RCR9B^("KV"*PM1CPK4#>P SC
ME[9GV#3TN;0SC)&SJE\1/0PI)O 2]2(_>6!IZL:>'!-8R2X-^C%5(C!<,6:G
M)RZ;ZY@((LD*2FR@WS9>\/<A-A :?::^6,BCQZ?Q*-+U]D(OZL\U<#A2%E;+
M! 1!L;M@H;:IW'MT^X9%K\AT.WK7%'+D0\A'?2; 'L@O 6R_"OF]/Q)VT;37
M>WHQ+ <=A>7VJBB?_I:X\Q([FX\\4E$/Z6PZ._)19<JV8*]*$4G:EF0"G^26
MQQ>TE>"7!S'R-)5AA+A;QC6WU%NB3\Y]B3'=U)>F'6JMQ5\1_Q,72_ZS%\4!
MFHV!&9G6SQ10K*\^PJ.^#K?SL(8 Q_810IG%NNIN5KK2JA;US/*&^VW7H)&(
M7X_U%0A7)*O?LK[,^]1O<&%TH31HI@U)D=V)5^E5["&DA9:J&D2PVB\^$0DL
MIQ/BZT2IQYX_T_[QOK$6;[**(H((V[\PJ!Q*U9A;@"*WF)+5BQ:YNM]%@?H.
M?8<>N@\5_*U(;"8EEV36 F73E&&HD-8*/!YS$RZJ2SI-94X 9Q-L6.6O++B5
MKUIGB9"4(FD/WMM0DEO'.YKHX9/!JVNK3EP)6E'KHPDY<<(4")E$6?8AH0BM
M<$WBAUZ?#Q3$T^I: VVOZNGD&GT@9$54KRE(&1Q4AXJ<X4-H,3HQ&FDZC8-K
MCSN)XZC(ZG,W!<["IC]+'KA"N*Z%C7*\S;:HP+> !)B :W8$MDH\GHSBF*%G
MF$6<&QF7F@C5%/^ [+W>2T(7?+GC8Q_]_TT&S;]>+)?!6N*I)'WVHO-?<0#(
MVGH7PF!GHYKOFS_>2Q3!D_,8:3[B,]SVK4Q@R4&"H?4*17C0LR<[0;L)L/T@
M?4G*297F+&&Q-'NI7ZJ "$)\@]3@4-J'C-C"&^]4+ML+'01]ZF8"V$JSZ<.>
MHPL]$-D5*\F1*>0QA Q%@+ 0\9#D]4R5XK4JB2>+WN"8>Y4(DFGKH^M=/?SL
M\M^R"GI(M7%5H$@,]Y"F!R&VY5#$&[?!R:X9UO>A4]'-K'4G TH-*=D,=E6J
MSO[D;43@I0CA;59&%^]$^W=)>)ZIQ_5PZ9L*7I*@+K"]R@')*\UY3<B1HY*6
M-KPJ,XUGNS3C?/G3\G%#"Q^'KJ[6H8JML&7Q^$Q%#I.(_3'MIQ]YHSK-Z</]
M1^Z+WWDG#;TY-)[VLG\&6#J>0 ]KLOH0(_&[GYIJSBUGG7PN%V_W^L'JZA?0
M,701\7J"1JH%Q#<[%\%"DV.T5$&%W<FC39]1="YIT18A,&SO NA+R"VD%"PQ
M\Q'C' E-TZ$]]Q0TY,:<KYB8"FKK3?F=2UXBQXFB:KN]M\[+8ZDFW.A+2E.X
M$70OT=X3IT_,QW?DMWT#KIZTPM:QK#N+-[U$5D#,DNUN\5IMK5U]^0NNG-S?
MO;'DQNNJJR>+4,"4-M2I%WO4UI$H;V\]=@JT+%J7U< N;^QW<%/8/YZ$>):R
M2HPT&U%R)-5&Y&[F;;RROU=$6Z^Z?YD)P.: A$:?K)2E*BN<SPSKSZQ3WEL;
M<=^T]89R91H,>6[D7=RJ;[!T_9AQ<[W'5U3/*L;B]WJEG?!*+P?%E-2]T_H-
M' FWW3#)#ZN1_7+&R,O+$NJ96YL7')*R^C'758P>WGV+LTCXDL/C8M;)$[:@
M#E0H65N1VWU:R&"U6MO:@+$2(#U#+5V?P19LHEC@-T@FK2$/;XG<J4XIY;>U
M6QST[L]:>4/-WX(D@K\'@D1\D*%O2K7%YHQ&>AQW71XF>:7XQ=5ZZ'JQ!;;
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
MT?A5F;_^%05>.T3J[(FE+_AI!)&=G&*O2Y:E($OEP=+6^.\Z 8%WAZ?"UK^
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
MU(&RP_YI JO 9+ZMB;7\:=')7_S!=K08UJ8*RM"1F:,2MG'H$_JU4>'$%J@
M[P'BGB##D55QBO.2X]C$;DUY,X;IHZ,?^]L+/VK?+>MLK/(TK*71>H2):[&J
M_ [*Q%]6??:KH[K8Z"B,W;%.UU]7T%P_R4E=[74"H]27XM%$K?%CKV"E\;I_
MBV(K?!7_=8[J O9<P])N*^!B"?VC-:^:89-L7%&QL,3+J"*Q]_-C%7)6R2'Y
M<8O9V^YWAWZ5;<(OXT!OT5S0AV <^QMY[C"YQR-E'^<[>L;O)O'O;.JJ""7H
M"B;K"DZ4L6Y8_)9[8FBK?\&\IE [Q?.&UUSLQQWIS<G N85?>2E.SVSZRU_H
MQ3G8?=?STY]/3NAKW218M*3%B'YI'AT%*;0NUK16UA,42X [/KAS4.XN.TR:
M)O;3,;\KPMQJXO=G[/*$GH3SZ:?83&X?G0$N?<-[M2>^F09UG '8R?Q>K)LA
M$B#'N@DG/.-4_8STC=+8Y<>62? GRXYB*;]U*2KXWO!F.3RP?1KYNMFE4">L
M$,)F;.7&EIP@^'ZLA-'A]WV>\ L\,2<+G4B<SAG@K_Z#Z<D%AB->R_1\-SN!
M)DY-+*< [7XW?.4#,;*#8_YF8:J/)Q<TL63@V)![?[I/:>AR0V#M]M) @#^<
M&4D,Z.'@DRK)]HX2YD"4ZAQ_#_6SV_FV;Z#I%4-H3%?(*8 58\%$:<;>@9;.
M#OO+L%O/&>=4WZ9;/$(LW-0RI@XA<%:@^-/T7HV;,TO;F0QVC.@&DM1W^4&)
M#O<NI-BLEXOS='QXI\B=IC@L>@6WMDU+8H=:>!'LMT<Q=Q0/51,^UB-/07#(
MDC11(FA; W,>+-=3Q(XTSJM](L0Y_69O$;'HR8A[,H?D[\!V?R: &>UMX38:
M30M.9X5#=;4LXL.NALR^5ROPWIDBCK&<+&/(HZS4S!22U!F -=UD33E1!!\;
MY=N;,S$8UEKADUW<L:%<5.*J?:<[K- K:B_OU(2E$GQSD"%F?9.3U_ AS9^(
M69.2)7NBP- .X@Q GX^A@='BRXM7H>GM@3_KP.(K>_[-D?$MOQZ]2R0)"_0)
MH_M1'=!T_AX<.LA:LELZ)*OV5$^M1[]?;VC Y3LH%)-[J]W'4.>A7$=KX)>6
MQAYK/>G?4EM# ?_>$-$L,'_U0'IZC9")0V[GX'1,B958L!3DT^3VJ?"GH:C6
M%F_8C^BP9K:7JK=EEE\S%M@O6+H&RKF%I"V;$R:&Y>O9F95-W[,X97S" 0#)
MX'OB^!+"-J4(YD""44?9X$Q$)Y> T+RI!8035$0O\C&D/JFCML]DN/!Y4;:'
MUCWOA\RG2E'-+,1>]3/ JV/OFK#3JBGK J_A_B&[).,PQD&RP5) >P,["=02
M4[9KG+!+<?+\KF05D!*S"4\\3ZP@D(<!,Z&7^*"Q[K/'CKKME^V(KE,;=5'?
MZP.?VE7V"P ?0)$1TLH727-P 6BH"9%R!KC81BG-][#K<Q@[C#)KK8TQ)PG7
M%NF&/VB@\?>\;%:9ZL]YX4,,)8DH@X]H.P/PH3DW0&R:O&[A6WH3DF\K4E[C
ME71B[FENY?]3JG8C)(YK#P]ZL^Z]JLCY\=D)3AD9DOWQNV3)OGUM;31THR36
M!8GQXK7 /F'9_S6L[(";WWD\H".8T[ S?VK@GY8;H\NKQ6)DGP8LO0"(8[)7
M)9OA:A<ZP>_^.=;^=5=7M&FTP/#=_3XCZE;@H< $.J8<O"3]IC>>S"MA7K';
M4OV+ .6II%D%$V\L;5Z"BR_57S!=@E]->\*%L.D >6BAWO_8$A6N;4X>6?"\
MJQD1=:"0[GS%E,I#F0K<1TCW5=NW:XK5X(NB)-4?NKY9ZR7];3\#6/!CTG&@
MK]>"77:X\?0[D[&+&F*(V9F*L/NIN)$ TU-IDUV=0C\D U7"GJP^6JNA<DNV
M[)=:&<MAPM)KCL0G 4?3ERR)DHNZ9 1V;:*VT-5]>_F@?-X0=J+[TV0KI8_
M=T04#L/N>F%[Z9Q@ LD+I(?<NR]S,HWB> MVT8./<G2M,5^S;4\2"SL=_66?
M!+@'"A!-CZ*S0F$3 TV3>>O("YI\Y\SJ#F9AAZ)WK?XT^?*M:)F'XQ9_D<V(
M"^?240JF4$^,^(RLOOTUWZVP=$7=\R@^,8_"J-FP]0JU"6./FI6.7!3%Q6WX
M88)5A,)XLL;'6G4;2!MEA9!72?A:.7?' Z4$XYH]!%A:WW4==HQ+P4H>=X*9
M^KYLE=Q^9J"4'DH?D15\H8<<*)#'V_O'XH^1/@M> O>X/"$O:6SYK@:=1G<P
MHG<O$C%=M[>$9)QQ7F49)(N")CX#MVA)]P*.:&:R]U[;L[&-]2Z"F6:QBLJC
MGKSH#=#^3^1#,BB]$'X-TWMC-9?1!_:#YKV;/;W1P?.M%@%7#?[Y/MT-KTKC
MK6>#"H<9=6P)H6^HHQW288B;&OY;^V2+3(V$&%'4EA_VGQCQ=\1:?'AGFWF1
M_LB4E(*KR?*[[%+ H0LU=F%C<HV(C)$UO-[GMII19F88IWKD5?"R/A7YJ%5P
M:CRB'2M#C-2.\Q*AV!*T$F,0;/)#T1]!SA%./46RSO,SZOQ4TBFC9]&!0*^Z
M"H:1&^8PZ5D+K E.\)U4FA1\:][;G\WX&7"=MA:\"(Q&"Q'K40,E;D'&L5Y*
M 80\$:'$8PL-:V!X8AL0\<>?5Z13U=1*\;USA77'#U.[M0:1!HU!A(13,#LS
M1<#OTQHG-I=;L&"A\DM.H5F9"FJ2-*YHU9';/&+O9,T<@7D"JNBT@KZ'&6\
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
ML9UE XT3\CP2!>2-;=F@$$!8R13LRB))F@;JO-!)@#IKS?F( K><0,&MGPD
M\X*ZNM$!EH.9_&8)*W:GBWG\Q0*CX3I+QA;+L^P8=D:</?NJ)8'3#EH<FE27
MFB^NYY-(_&Y[HJ4M7D9I[E3O=N;@>N:Z<PEUG-O7JD6<.X<$^])<_AMT[:P8
M) _Z9GV4YTPWE;M. )QQX,/@0-7(SLT?OD).Y.T.S=$)<O5 0(32MNDE9/-T
M'7P^]&O3W6Y5Q2MU9N=WH7D^VL8<N_7L%QI/CR(1R@.NO=\G=45K-U<XRV#Y
M;-\[G[4(-J$.MH<TB+SX5]#OPS!Q+#>2F'$/^2-M2$D4E/5F<LQORR[>7AUF
M1 SZ#I/$LUBAW\N7. G.;$N9DO_\6'NAF5^YJQE5"],A:6]EHB+Y1_R;'" (
MP5"O/=.EF6/XVP2_F?HR.'O[O(K9HGHU>^<L]&OE#]97\MDYT/4O*5/]@PJ*
M(]E N2!CKW4\686GOT;&TJ,EQ^#4%]TJ+95HV&N)#UH*JX\T!U^'6IEF&;=;
M%G'<\:!*[_P).BRGQ2 [RORPS@73N_7JPQNKQI/LOC?M,-4_C4.0YNL:0ZRA
M&&"[>"M;(S2EVZ>/+=MP/4\PNO'XZ,K>&.$(Y5M;6U=9E_#[]]SM&$%Z'I]O
M5S_[ ZZG\2BTJYLL)?B!8Y2'52UAMCBBZ;1QHJZ^RX"DM(BKZ<8 .$TI]M==
M&[5HJ'KK_'>J"B$L'?EQ8' V47?$?X?1,%9WQ.,F/939W8A_D7$SC#3^;S4J
MA$44\ZTGGN-;QYU__^FHT17ZHOLJ^2\Q6,\D)35GYAQW:F_\;[WK;*1W:$D&
MU*'6JJ(W0L04DA;9$3<4(>]OL>])UB^?>58V%M/4_.G);K@NX[T87UW67FKO
MO_:(9X"_"X1-G'D*=F&J_ER;1=9N#8(?U8WM-HM[8,55 N)O.;]WW/?RN)4Q
M/__JV#U Y6I_&W/<']I:(RW?P 5>*KT=V2F=$%A)+,.<D(.]\C1K_1;7%5XA
MC2/ NK?>S>EZEMHIUP]=C7I^04HFU_O"A)%6L,[.!5(@O =8E=O@@$F<!A,*
M<< W1QIZ0-4! [ST^[(R*<%H9;E@3\S;>^$,;R_2AK^B&5__KLF!UXEJAF!F
MI-F)2EWFJNB48FNAWSG?7=-=?;P"Z.,*DGZ^+<G_A\Y)\ :T-#$6P:EY$T:#
M$]KK!B8 F?T9Z:!>AH %"%IH/*^J)D+D*I=EANE-*(V*R.LKGZ]_C#G8FSH@
M5% R6MTHEP^Z%JK!O<BKT-4!P^R'Q;J8'$_NNJH/X68BCU[^J01\*&?Y("O^
MY]5_N!_])V_#R4:+R#- N\898/G]Y@)!8PMT:OR*9D[TJXV-]=1,R]SL!HO1
MK6"AI/#OHIR"*6V ()30&,C3?JI>?Z)PQ L&48ZZ\\3!-%8_UUK7)N#*;0'/
MWF\<AX)^)G<ZKMU1L]=:)=TJF.\M'[:QB#H#O#H#O,Z5G):7CFV\F' &".0,
M$(QZ> 8 ?"B!I_V=L;6:;ZM7#)(9X#X/CK+3BVT=J[R;_\^>"4[O04TO++:V
M'7X<Z.*[Q3Y=11//K7_;LOT0'MA]!OB'?^FS_(6-&HMNU7HRJWCOR.Q/?^G(
M:?4;Z9K&<W/ZXI>&.,4KF!/=>IK_[0F%A6:SUN):(Y_SQOR=E:&X]&[< P:-
MJ!6\<CQ_T+AJYM>7X"&05MQ3U+27W>NIO\1H\&A<-/?ACI@&F7#9@$A6^4:^
M]05F1VPH1IS' &_7%%34A<D?/;)N\%$+X(A/8%7E PQY'NV3'7HX@32."G[N
M$T62RN[HL67"6W9+_:)'Y3-&!N6_+M,P?\*:717;H?0%P76F0#>I(%=-'EH]
M'.R#&WM<JT+_8SX.!"M(+M2?ER*^!HYIY7+WM_XXKFY;JH\H_@WR>Q7?:'$(
M\-<B1W_6$&_$(=M0W&2=/YGVC&YUTY(E=]\K7-GY%6GJ_<0H[K+ YSX T(;)
M+@\72S CZN#"%R$A@1].RW\8;M12G-X>"Y'2!%^"B'2T/#<A)XFW%W=E\&<
M9IXS0*PXF#'MP"Z*Z_HL?D/X</@,,-23O8(2$;2Q/")FPVFBGN/^BA:;U[<H
M#1/. &^JM@)AO1CIJ2!"/*6P_/:XNC,2]X[H\4G>R$Y['H)Z6>$HEXU@WN&=
M'&D2'R(*>8:?4(>(0\'L13E?!)']9JC2;ZC-[93;?40_R2@:B3PN^1<U+TM;
M[,T7+-7JCCRJL7B.3&)C>9FKBNZ1RT\<HET!ALA[#G4AQ";S:ZYS.58D]KFX
M96IP8QD[-=PT!+KQ%*1%A3=N8091W&P&DL #'\Z!Q7SI>JZ<]E<V!RW&B_0V
M,F0J%G$PAD],7O#]TY? @3":M5BA2A/-PI?F@:FXN_$2';&$5#?!+[,?FY.3
MJVO*\EN;A#C]74F<; $F$MU"1O5Z5KI>1?[-K:QY*3@4=O<]GFUL8T_,>I.
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
MSX<<I>9691VDEB] IEXEX97)'NZ=[.I:MLO4E6%8^+FJ_*K<\6_W9_@]3A%
M@ (2.\0&A;2AN=#XQ+B IC E_5&/7"SU=/=>4B=7W,>7B+YU\7T! H;2 A>#
MSX!8\H@N.&\WPCPSR?YOC>3E]AR7":? ::&<&RL#/!YQR_R@>0GPG#?H@G.V
M5WRJ:)])OH%=@".*X\03)3*].6 ^C(,%])Y8T#S/5QT.$!\++-*3&DG/_3UL
MN[U[J%M]B%BR(+,($!X1KZU908>6^'("OG5^\(^_@I[S^X&@D5!Y-D3Q=T(E
M:2H@VH-JLY!J3RA(S>L/W:)O:]AW^YTD)AIYT%PR6<AX%AJR#[P$6HRVYR/;
M+F_:<\%\"H@/QBOL>D:IPNSYXX^UGZ6/WM;N+4)-(BXA%E. E?]>_RA,>HJ3
MF)<:>]G^7]A[[ZBFVF]_,(I(4Q"07J+2FPC2!6(#! 0$!*3F19J $)0ND"A(
M$004!*1(E"*=2.]$NH#T#D)(Z#4))012F+SWKC7WO3._^YV[?C.S9LVL^>/\
MD?*<YSR[?/;^G/.<O56S9;+LQ$,P\W?;=4,4%81K3H 3H9<73P%+C[.=K/T2
MVV#)[_E/ 77%KX!9%$@/JP+UHJ3+.-@:QH%2EBHX!7B/'6JR$/Y^9W1!3W.8
M:$BHPF'N"Q$*XI0$G&KN:+G5\JD!47%:R,#Q*50V'3%R$1*KS5N'+^A <#_Q
MM+&8766AJ*RXQ+=820<YSALS:EZZ&/J%](1&( 6A3&0G'FTY(H^F-@/^0KJO
MVP71C4"3]1%YE>.EU;@5X/[O#*+QD3ZE#KF8CN+0&=9 1(EFV\G]9MCAMRPO
MF3Z,]5:?_:GAEI.Q#F<DPC!:JN"H$EGQZU-^$GFVU,W)_D'!7CDT9[:@(P88
M5</%*O$5'V0X8U50FD3='\7VA9:U%(@0)F/)B[@C,D^3:0TNLMI!BI+UM'7J
M8\"\D1-&Q,O]*O6DY)Y( 2FOSJ1E2'#H'6RQ&2QT_8B-@<R)^Q(%Q1(^':DZ
MPU!LW)[+4D%2&#&#<C;FG.2:>8, J,>H-TID6YJ(0G=)&WAR2:D@7(SSIY*;
MS9"_25.$!DH1F8DD$GJEF9B^Q,0=\OTW/W="I5>R:=.5E/>O)$F#IX#VKX>B
M=,=W<.9HU1X@4:IGQR2X. C^)'U@YV<SWK)E!2[QL&J06ZUM42BW/Q;T/)OK
MLRMQ"Q.]HWX*H)<C4G*>V63<*_2TNFV]P>\ Y[SGXLBSD&2?5Z$#X$FZJ]^>
MX%/,L)6X'4^2#>(DZ!+ON.&&VO"E1T;O#N<=<^?$<P-N7[QZ8'ID"HJ\O:DO
M@?708UB$7U0KX%N=SF^<,(_V7T;N!1^]9WM=(.N6(/@P;[QHA=>J:F0"[N:-
MF/H3[?YP&\I-OH$S:8,#W&$7H$+K%1LGVHD>5ZIJ$\L9Q*8/W5S%TA-E?^MO
MV1Z8@@>Y2BPZ+5-L*E]^RO2J"YB;J#VI/0+E2X[D1N7R/\[)Y<U+,N@5R]'W
MTW]^V53'U>-_JM;%L3[)']8F3U5^=@JH3EDM(MTDR[=.:JIC%/T%[H_5BKZR
MVT:UU+FZ6L3?(V_\$K"3)$4A+=<1%8NM*@/UP!O9,N<^-2SU2_:1$<7> [>Z
MMK%5GB7:-^/K@9)+I8V\=KZ?[,0&^'3_].?J5T_DU5G.2PR3W^"LR.PAA"F\
M<?=4->(B\84M?50%0O9][H9'E2]QJIPH0V44*=&OA,4@JUVJU4X!UEXYSRZ*
M0Y/ZI9>H1.63>SIA : >85 W>&8B4HS2YTGC(FMNOURHYX@AX74U^1I#I$,@
M=>87DHYF+B[8F4STVC8<ES.%-NG(RWC@E+XK7R/PHS7LL(.RX2P-&#Q;"/A+
M6G(G>?V3*3C%Z45]<P^/IJ6XM[_XW*?LG9:9DVX6^K?]/GZX^B>2YN&F[RU[
MY3X\MJJU?)62U1CPS5.0<,2NY-NF>%Z?/8KOB3#CE0]WBIZ5.\\&ZAGJE]S$
MRW=RSR+)G%@J,S/63; ?LHCB*25L,LV_R#?<IQ]Z2:C<T5X^L=KQ3B]ZXJGA
MU5J1;Y]'J/,1G1SK?EFI^U/QAU;;.7XRF@8RV^0+).$&M/RLO'Y59^!'E>C2
M7R6OQ8S&;!4.9;_[#^49R*P/$45[>D!$.U3%:GS^IFJV:]'BANV]E@LHA=@K
M_/,5&\M*[MFK*@A4Z /#N" 6&4R,IYG,C$48I+AINV%)!A8/'%K@5VT7A&7@
M2@\*)'8*";4)_4W+G\Q/ 8CG)ZZTJ/+39/V?CR//IL4H793O/+E_(ESU7*SN
MRXVM/\*_V9ZR79G*(@H07M:.^A_7 +G^] 1[051/N!H3Q(3N/0 1')9]>\#F
M.:W =YKJB[MR@S[IWSTCXVVF/??JJFP+![S4ND@C9HW&% &3D7;7>C*KL-^S
MP9'L4\!JDW:X='&AQ:._.X%]JC8%^R0]V __[_3"[@*&(ZN'.N#\L+8N4 VX
M(W$N8;4S:$P?%T@ ;F,A&)_O%U7Z;L$T'O@=IJW$KFY*76VX\#GX3!9=U"ST
M$S'P%'!NF>A&,H?^!/W [K"@$Z/Y'\(X6[DWX$S->M^#LAES:IO3#.OL)3<M
M*X<Z#-FFXSO#Q244[[_1-68](G//41G=24JPMD=0H%VH0\NX.,ZD*Y%IO;(U
M8FE'?/J6W3WFZB+W$&ZK'7:Z+^_YG&-J+6)W=8D@*N,Q#; 0E))3P&+V'EF
M$@E:+(.Q>3]O%0HBM9W(HNA:98/U5^;<K52&!7BOBR4>^<Z)OFP3 '':))UK
M^Q#UGN[(LXO*-4I^@<Y$,7E:\;^U3,/Q>HN.UGC&L7PH0*2]\!+UO0^;U;,\
M0G2AB&*)/T%1R"H)LA"<9$[F)^KD&A80H1V+Z<U5U1DGGJGQ6&=<V?9,:F P
M\*;= ZBK1)8?%\D=G'@*J$@CE^O\';AFSHR= @[2VL;/G-B3O*ACKWBV74C7
M0G4IQ9HZKG66U'.X^-TRKN36D> 7@GJ_ZH8@*DZ"P3NMK1*G@ C75OY-("?2
M,=Z6RBR W[N/E^\"SLIT9;268%"<'A]DTSBF;1<,'2$%Y=B&9W#7E"3VMQ:?
M "K%;U"T@/F;^]7 $?G2T5(G/W/#%[\6?CWV"+B8\KSZZL9<G]50K:<M]>(X
MB8VL;K7(1O"E Y*OU=VJI?%'DYV_.YP3J9N XUPJDS\^YQ1 H#&/\!7J,!BG
M^_GZ+"B*OQTN%'IEE(6Z=B=[=6&!BC6I-CEV\>[W5V=/3+GX4?K,Q]X"' *#
M@;59P!97Y/G(VGB\O3G::OL=>@Y!O$]6]M'L5V]^4M7FKO)-4T]R7T\VS5-
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
M@\A8"=:F'^YS7E''JC:"7T[59D :ZMS=O9R\A%)2&G4N/.!06[*3+EP'%,D
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
M*W.0TP-+4EGQO!U8,;&8]SR,K1VIVZLIN91%8KE@#&3I-_#8-/_T-"/DENJ
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
MLD(ZF\S<0F.W(W$Y*/1:.(:'I\HKTV%R.49V-G[PAMTIP)_GP[LLR4.QSZ<
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
M!147JG=+Q]&C855M4.&UR4GAXR60'ZOG 0_A+]K"]:$#H+/5*^/0J\^&@X[
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
MDF<M/W\8'JG,6%-!A>8"LEV3Y1'=\\^2GIEHJLH@O@5\6*5.O*Z9'C*;TTM
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
MYIQ6SCKQ9'<ZS\?SA]T?O_R-_<*[QA0?1"H!:04,]QV!F=PN$^^PN28>?G_
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
MO?-TKY+#T>NPQ\>69UQ\9MO=J5[?<"O"G R*&M9^]]P8@--N %ZZ[TK[C,A
M8?<ABP"OFUN^VF7.$W./=93.]( B(TU0#L ,BS^1\S_".UM2_6I9HY!Z+888
MAFSVODVR^RT")8.4!VYE3/>0OAUF1:B.2?LD5J[-GLBX6,Z5^"W=]>QD?N#.
MDE]F%8[#9CB2BB%NV?./S4: FGW/TEHBU;C@\EN&(76V-%3YTXS) <$PZ8UY
M%4>%G,F^BQ<_?_G$E>)0Z<M-<TOZ8:0%H,FX)$/AX%<,:>#)ZW +YR8#&[=1
MAFZ8;>.C&.G"V)7]I=E*XCX:L1#MH'WJZQLLH5Q@@^[(\/[''L \;EH;LR!L
M[>&L @7>[:IU+LUFS/LP0G+J];@"NG:Z:O7FW)V'>IDB;S=_W7L)'G_[E].3
M5;UKP*DE\B!#3)46#HS0S[B$PVG#[T;:Y9%G@>9]V6@B9L]/55.O)/4!QX/.
MN3U-61&?A@R*$EO4'%X>4I 5X*(KFHC_?D<_A^J&8DL8X@-D^R2&/1DZTX6'
M@HP$?KHIM']IAX1KD5K.-):0=>KR5GS&=633E6ZZYY /7]J_O^^ZL+ENG<0M
M\/ 1=<H<S1R8X723/*>;-- ='H9"G&;O9E:@_=I"YQ"=X$<?$HD($2#G1T#R
M@%YF41*_HM_W#'.YHXK[/R%^M#HK.]KOCH8W;8*LX?DXKG8-QK5W@#W='-UQ
M"<4/2$#$PV?FP-U]K1S NMRBH1FDW7;T9SC:/.<J[H1C[L)HV.%<Q6V1=WMO
M!72U0SEU"H>F7(-  %V.@NY]PG'J U#WAA&<^FUM15.S:O4V9E_#K!XS:5H]
M(),NIMQN$G89U^TNK0!"M0W!7\ I@1Q 7)A;XZ@ZFB,5$0,-."6#2,3P&5[*
M 3]L2&AP\!PEW?;86U< *@NI$*/"ZD&S5[&SWN6X1X1JO14JY^,BJ&XXZEVR
M*D.,%T_@0HE45MSUH&!)@UVV&>-K5T=>9I(N^UQ[82&=7IDD/8<]F'7*[:CM
MP'?NS=XDQLYIHY&H(0C%N@I06F-(V)SG_,((-0.OOU)%S28M='_27#.2 P:Z
M)4^ZN#D?3II?68"IWE-.N925,6/A/ZS?.^/Y*(X-<J0'_^5R5(@\NN,]?#T^
M;1K,ZM9C@X8?^J,!!33C51?M/AM4>P_!!A4JO250;FG7]/PCA5Y.FPF HQW/
MJ38W1W']SL&P^"250CBM+8OS>9W2Q47Y S(_TUT; ^5(,+C]@B1#$M<A@UWY
M'48I8_%M4/+O1*+)T&1-I U5U KK.M?)$AHI0ABQW/K6OVH'GY5-5$H9^1JY
M<ZS<7LXKIR'%F=&&LD6.0%6/O!Q:/GQ\>9$- K>J5X7G$"[&LY8@.CUCH\LB
MGWOW&W\*81PA6<'4\;*_[9>?TSE-V'$2[?6-MQLMWLX)Q2M&/$ 9.2VU4G&4
MI0JP+!.G+Z 1>:(W=>_4,(MS9CNGP$\";_)/-WMK:608@")37OMQ%/QE"HL
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
M(D&!NMI0XH>]H;1A->CG=7>OY-ZJ>*%#)W>5Q:Y7GD$E@=:A4U":%#.'HTG
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
M5E_M$L_96%_%48CPJMDXA#<9W.<;34(;C61!B*98(=O9<GC,5_F=\3;2I[J
MW[NK7!E7]LAEFI+>';P1P#0 S>MIB&12)"3U%5\Q]VA31WV)@&W'2\,+8W>U
M=22*1W/J3CIW(?\^RKL#25$^D17"D4;17>)YNCC*/H0O4@YT7CE:6=FRP^_^
MJ<^R6Q3FD;5IK;0C"\Z1_I?2.D)/P,\$F-W%ER_^630CII@ZUY^O-349DQ9.
M<QW?T=U[>Y<=OS/ 6 (/PNFJ=0C_J7B4 #$].E_^0U4=<!<_%Q7I!E22P@Z>
M-3C]@92YIG>Y0>"4A%%&;+:RM/W-K/2[A <(ZL_^5)X9_W)(Z 9(+..8#.\C
MMO#/AS''HB)O@I&!QZ;&U9HNIL78J= LAKC[!5L@_(TA3G&<@,XJIBWK,#>1
MIX\) 23C(D)#PN=6MW85NX\'A 1_RDH]<-R&-S/O-+ZPV#*CF3IQNG,%33C!
M34!02S9AU2X<.0-J? ESB!7.)'YCY<,S:$R?!^7^_2'E"XK;*QA;IPN^];*=
MZI[,I!-C#.6O'B)34Q4L9(?(U"Q431PY5BW^F EH0)OP=H7!IBWP8M.RZ713
MB4,AK"3"%X,)A-T(PKL?-%>>TZ+,/CQD7/JP91^X]VQ@^^39]^UBYI/AKPO6
MQ8NB-V'!ACO&NQ6#BU9W1T<]*,91VC=A[R,2$?[IJMA/308)6(V64F"UU?"7
M64?'_(/@2BURDT>?SI$[Y2H6MW+6%;/LHU3;#^Y1?_%T7X(Z,,233(1H@T8/
ML3R9.(8U?540XPH0<V(X]MQ'90M*"=$_&IM-=062SM15[BO>VC.^M1UXO.32
ME VL3D106OA]5U2#V+9+DS,/ L/#7G%DJX;OW'N=:.@V;9)#B_3)1:PTQM/1
M?[@3KA&$-SCJ]TI%VR$<-1%>"QNJS0O$U8XONIA:G!+-O]GE,52C?A7SY9:%
M5_^6Z*-2Z7 @S'?9"_"B"<=9:"_ A; 'P)^>.,ID2!+)L@1]K&W@,B&V@E Y
M2!<:"4YIG9FYFS32;OF-H?:LK%IA@\ 38?#[<W.?(:BO-V$P.O<51%NY;].+
M;]&C[IT9Y1YB4;:V)"=GDW7';5<KB4]CU<T.WBPW/?)G%=PKU89*F-G%S_[A
M;/UJ!-_JGUUG-M]:J<]VKTWN$8I8-W5.7)?YU-!>J>;54'?[R *,\&D55#?)
M*./?S4+^( XX3WBP"1.\4V<A#K@\))[%G?IZ/CM&NU+?/<IL2H5E%6YDU2CJ
M)[CF0C?ER.6UFFS"=I.LV8>P?;-;,/Y,<M>,9,PN\Z 24,;3;+*M[>Q^/3G3
MR;22B*"@W2ORR5.=O\_^SNPND#$D>Z% '>3R(OL*)X1INOP21T,J< Z!/=0?
MA]&Q-%3[2S/ELV=.;LD*O0DXZ"K>8MRYRK2SMW69E(Z%IY.I_5+2I="O%WAI
M"ZU?&S4!6#TFO.M#P'JGTH>AU492<V;7N1Q,Y?#\)X/%QF]KFJ0VGN21@37D
MQ!A/3)XMAAW';=L;B-P%)G1\IC$LE^,GC,4"/1W.6==C;M-=B8%OE!MMIUYX
MP>!AV&$4X&DPWLRZQ*W$[&(K@C-=G;?!^DY5]5@'TS_H*T''[(;4 ],U/7I"
M0AX>ZA>Z<=1?C_1#>;ONP5 'UFF("TQL#YRXRDB?,Q@?:R5+\=1 KPM 3KP6
M4P:=U:6JK.2#?^/_^%G]])MLI-EV-\TTUQGTG-2NZ=\ORV8U(&C%2@"$-'Z6
M.1E PD71?2>(PW\_7Z3+L3:>QGVWI#<EL"_:?;J@3?OZ/:9T3XRED(S.VJ,Y
MWQ@+*;"&%I*BBS5T7WR/#G,&XEAY=,;IW^%$L2*2C-C3S/D#UQ-M?A\*^JCO
M<".\0.J)T2JHEQ/?HHE19"(82+8^KQV^$ZN-V0ND?EZ^G]..D+(MFK3&R>?/
MA8>63J!0;?<BY2+M=-7.MA\\?]KD> +5@",72'5A>+!E"8S/;/T%"VWFR@/C
MBM=3;6;;'I=Z9/[6%KK@FN>OX>0VTOWELFUMDN 3M?Y>^'M\2L$([CHDKKXX
M4-WTXZ^SQZCP^%>C-RNP1AQ?4E.NQ&WG7-JJQI!1=TJ$>^:]0;O7_C^J$P]7
M[XEZ* GGB0]F\A/?' )/K]@A4YH^GD!:LE2,YOYH_2F05.9MAY3@5LQ_FE;!
MIY19A6 1LXBE#Q() >[XE+]Z6\9. -NR?'$AU,AC4HSM,IV_'1XU;+^UJIO6
M7:%J=0Q6$$>HPP6$@'I=R^EL'=X87))\'2&-#NS*K4_C::!GSP*CV77YT@W$
MH<KBYI;D?H;$/?3>Y)_[9QP;)I\#-D.U?_\I\B2B-F%9K[DMN&6J\B;,@9@;
MRY,\%@-A?TP%CF*H[WQ0A6=>7>.5N:V1=EN89XXS@W&1W$*<'SD&7QU"J0QC
M/>"^:MDS#J):+783_ZP%7>?4C5.NODDN$^M3;SZ@X;=K^MF!&#OYWYNPCE50
M]T/_,F1EM4I-7ISSY<@^FEM/P.[X=,V?@PM[O3!D7SK52[FP\L<AX4(DVT[$
M^U])G*>E0(9K'&(OM/6_HA3##[&O8=L0-;;)/[6!]7:4DAX1KSAU!A>*#2+J
M'9Y6L/R:2&MNZCX*)ZL^W5AE*D+D?6BABT&,62AP3@RH#=<:R/@KFETAEE[6
MO_!S%)VK[75MH?L30@E&U>36DWV>D[VG#*8,6GGFC4S3ML_(,XH;/C54QA:V
M:_;*7N5C>A6TS-N]CB/#G>(W4S2V.U7])E.DP"/]+ -N(6_;KTV84HLX9C](
MH#]J-M@Y#>):9Z4PAZA#;T%\AT10H'^H\30QKB)S9^5YSTXE_QECU)-#SN%6
M?PPXNVKHZ8GNR(^H]-D:++GLVQ4P EIXQ\ZAMM^?;K_597Y6&=1:OY3G>N/
M$0E#4Q>-2<@B,N!HTU(1+ VPBYYG(.5F789D-BUU1IT^=DFV+U R[RKSQ*!
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
MW0H2JAT3J_JV+R@:F>B]DW+=%;T]F@D<97NV/(YRCGS5((:WE_L<$= ?TZ(
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
M'Q;0<7/0T+LY^EO@>T-O(LNL6P!RIH'(+6_Y&=:<P[>WV79.G9?B4M9.<V^
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
MR4U"RW;>*+2UG:0FVFAU.< 4:Y%?;0R=0P])K"V7JPU)G(69VQ<'F-S_4_B
ME52Q=JQ<[)']3MCEY1L^NKT[X'J865K$LC;;"3L["S@AMT,>)R+8(.8@9A^
M;STN4 O9TSBQ8&)SD*U;2Z//<W(M\6B0&RTV\)SG'EL?Y[2#X^,_48.Y^P5_
MA_$DW;F/^0WP@(NSL5AI[K--&.0?$=P_U #D=+CG,,GM'=C?-FI2'W/,GO'*
MPW7*T;"ZH3&C)_>(V]W]DPXJ9'N, ;_*S9L6&=#R%6CRB[=]K.)=8_%"W>@>
M)'.J;2]E<K^3:6V/3F_9:=:#Q'XKE!\_&$1IC"/MRVKA'V1@1[&JW'((B<DR
M)(U\">!R)U(0VX^26 G6OS,5KEO1ROM](Z7WBQ?R6)^SX58G*9G]:2U]_/@C
M<([U!5!<[J] '^.),-A&,^A^NB2Q\/(B;S<YH5WI7$XI.N#"(R7/,R'!A1'[
M=Y,<VW8G?Y8<.Q0C%B5B#<-\YF?<@;Y,6:KBL@KPAQ4$XMF&@3B)</P6M'O_
MN1'JB/%GG?,)SL.GGQN$7,U#-K]XG_VCY'E*GVPP/NZ(9@U?\O%;+=1XP_R+
M],39ZO763=A$C1.850FNMOUQ76#5N7_)\0HIF2W2&,VIEUE2/']-_:7ZX^W9
MMIKF.PI6X)<@0N3B@1#3-B1XP&7Y(ML4$H+W\XPYMAK$>-4';[Z18S@1)>#L
M27),:^_U/\27WP[-*J?H,K2RF1JD<V^<%(YW>;&6(5)8<[P&-F'!'Q1YH@SH
MK5J9DK&%&)^AO;_-PZ@HF5[ ;\:BZM#VXF3[(J&IRZ0#;TEO;?QHCY_-'%[=
MT(*VA#,&!2G4<@L!7C_6-(]U&_S#%N=<!W"=CP+?W-3'2-!%C"*##A^;<',V
M,2/E%"*JJJY:SS]]_VHVE316AFV' Z=74Y0V88R."AS% R)+2=.7!^6<&\.Z
MU@F0SRH(^D0T#O!4%R-WR>PL?:S=U/3[>X;[^<*#0^?Z&KIW10WQ1%7XR5'<
M9.BKI9LPJ4+ EN$$$ U"*O9Z?\5X%MOIA:?NKM=:7E=#=B,UM>7I7C'==D*W
MR57KRY"[LG4[-XZT]1H;06'FM:)42(*O6NM:%(8YH1'A!>@<NRK+NF/VOC%B
MW<;&J2<NW?7P%8SYM"5:8*WRWAC#GZV+V<VO8."+DL?VS:IR+,(-Q-#-9P+/
MGCPRKOOUH!J](2[QF&:RD[WC^Q-W+L<<EBJ$6):!JW*AI(-Z",Z.T9E?K,O
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
MP$8.^Z1&/&XVMC3:EZ5?;AYJ"!M'/7W/K] 3TSN)SJ)D8$XE\$2BV"A*X>>
MG(/3?<!MK4R[9\&2=4R4^;()YYL->B,9QC9)_I?%,H"^U(JC6"!"4(K3' -0
M@#D#!\_6_MD_;+Z5'G5XSFZTP._/SS?$YE/^R5=7?]<_Y.W566R"[2_+WS/V
M%R6Z8-JRGZGY=FO:R]>3]N&XR+ ]=@QJJ@,IK2O.Z;S]\6B"!O<!(C@D9A9P
MQ$\\LN:6M6SY?-=(Q6?E][![P/ZWX?[&Q/;'I+"]655I'8_%?V>JK9Y0_6PM
M/X>O2V"LLG5Y'Q%2>MB]V"&<3-' D%,S&YYPQ^.8O_[:V=O+5#WBTV*UDH;'
MV2?NOAN9:7YN^1D6J2+/[.CGR NS\A+:;.DQ.'X;9K]YX!;RR+0P,,\:RTI9
M43)@$:;$YGANC-DI&/,*F2V#HU@BO)'@?I>V<D+B;(UP>_%(SNDFME;B7YU?
MOC4C=W3>6=:3:I^([,&41]OM9RM['13Z*ESK:!V&VVEQ$',(% #(GN 0$]\Y
M:K$;J(^O730@?@ZYD'/#Y/V>'VF'7;.BRPIJ#HD65,&B[SQQ:6_ABUD;YA1(
MH'9CCW+X[5,O\ 8L]$#/\)WX<\R7V?@BC^F [-)]P<M_RU^>/#:5Z'F+^3[%
ML'R+XF.I0AX%!SCA)SQXHE9SZ:J@%LN[B2GQ"2]1<2>>Z?6+I]HXI%'=TI)U
MWJJ49+H_4X3*ZP\Y&'WQ\!OGZY714B5^;WXV$>LS]P?K>]GFGWRLT[#-1M0C
M(':8X7Q$Y4G^R#Z8G*,U-"[W=THE(8%T&NO5W#A6%8WON.UF^XR$H'(/!:^)
M=1Z7V3\Q8+BR4G8LXX2*L?QO87Y)4M%I6@BH0V[#J7*< 21%XB)%R266%'!'
M>;_Q!S=]_=6LY0'D?-_NT+(IDQL'KDOIF\SCCL!17_\;B,E_P7B"S4 _5:OM
M;. <O!.I[(H.:^6I5$5^]G4?_CDA4:OS+;\X\V39&]U/O65B.[8+VUK?0@A9
M&(*Q]/JV"9XNNH\6M E[\'\P]YYA3351N&@4E&[H50@*B$J3)DH+BHB(B(!2
MA:AT$*("$B021"E2!004A*@TZ=([H000$9$B)0A)0$6D[:#&+2F<G>^</^><
MY][[]_[8) ]Y]IZ9-6O6>M\]:];2._DKY+7Y8D51_*6<BR)Q4N'98/^#Z]G"
M[0V)>1=>RQ@0\;H8)[: .LY/+06%8CW<@5W#)R/V&XN\"M!U\<">A53D8DX1
M:E@LZ*E_3;G'W-";1]?>NRJ3G*^)[N.80+6O^-E MH V0R-J"M_(C:C%QW3(
MTWCZ\&)!#?+F5VB^,<Q(RLKOO$VAP9M3[\ON*'^PUR/X.\C$6%TNEU3>:\,)
M,H*89TS7?Q5EW/W>@JOT7-9S4TTK"J/3PT3+EM8<IS>O\->VM0USH4*!O*[7
M$G] &38B>#W9IEF)._I^H 5F&;+>UWL8@=@CXZ8G,$[T<#">LLF/2;-H_HS5
MK<#\E#_*5>%ZP<!2^9(KZHNMM-=1RLC^Z^E93Y]87&.3<( #:M:2+CK9H,7-
M=*4=JJ@$5_M3Q7K(@L;PPJ$*3)K[G7ZSYKKX)T45NY1+3@PY[JK3-D.8C:$.
MN^)ZSB #!(0TL.BE&E 9,9BOU;M6<K;S[6=CW;* 6_V?/6R.3E\)?'U[ZL24
MU5[>F8NZXVPB"KB,FC5B\R-H7(-L7E86T^[-:CKV1/W8'/%>UD9*R+6#;02#
M;I=_!G:#.L/PF6=6K3 AQ4M6CC"N'^6':[)PZ!I0S;<'/F/=+XGC>\DI'K\X
M2HQDZ3+.(^-QO,RCVUV%_M><7R^XQQX(NN;C>$7=6MNAD==1D>MGN=KB*'@(
MSI1RHQMSML# 00_0"%@^2W.*,3T(^O#@'0&I-#UPO<95^JO(L/JAD_)>(NU'
MV_(S#EQ_.CB"LF)/(AOAW9LSTY349H8Y>\SCY,,^ML2G&XX=G=G',ZR\[O*)
M"Q.C.R;.?;-3,G-YO#+YB>>E'4H%T\[F?TCCHL;W0D[ #\* @ TA94$:]/:]
MH?4')3J/N_Z%O')<6GVZ.=>FJUCEZ['745L6ER,*;?H7W:O2BDUEF2Y@("V)
MFII&*Z3&IS2P GO;V%D*I46!4TZ[JC:"E&U6#WLF"W6&Q+0H1I\2W_5I#)6#
M1! H:Y",J/ D?2-</')7EQ;3&K@;^Z:QH):FU;,@$\\0^. XT[NPN(@A4@QV
MI1*#^75W\S%P=#$6 >D#!P]O=E>@27"Z(VV3_C'QKU#@&Y*[V;7.\>K/YOI5
MD\J9XM$Z!<4NSCJZ1P3-3 H2@1W8G"J=!:HR)(>H*'Y,W\5I8[NEF@395Q-=
M"DQ]P#O7/=#C8.LE@7_:0\JW!P4#S*UNZZ7WRVY]Y(/](N]!4HJB]M%JUB6"
M& I1GW![C-T W\62LL*N"BI> +-XWW01(>HRB#]N8\BP;6UI:L5$?WB"=GGB
MW22Q)YIG7(]CH)SZ\<V^3,E-"FK-FX9P (]0\+._%@<':F0P]Z:,\%(K"%ZF
MXO93!9G4,[^49&,_GKF[,<9<U&Z->?)!6"=SDE/BG4!YNP.K@S,E\#VRHPE(
M7R.6[X5I8UUEJT7T7DSY1Z/[UK8N!KS?Y_9G6*IKVG6'0@*_]2C:S+3\=0>>
MWLMJZ-K#[B,+5;*5F$&?T;-_\@/(%D!-W&^ADS5A:)& ^A>GKGL&X/5^M?)P
MQ<)$/[P4\["B*;'YGY>Q1Q;D&L RAD]4'UZ\2X)IW-;5W-1.VRB.>!TPE2N2
M__G@_8OR6I=:"C[J;+SQNIPE\=Q<9T-\UY]\B=A%V\?D?<P#P,+?)?CC#G3Q
M+,;AXAC>L9,F_O>-.O7MN>2J.]X?R8?/&FQ^U!Z)NL8\O0-[V+8#NX[@PB2:
MG!VE>X$K%5C3;) TQ[1I!D*/;P>MS#]0>=O2DO(U.=IVI.X"%Z.#9H:H"'7:
MQ3@6-8G<3;A9$R.+6)=@&##-&FA:CSK,@[TF_JA=>F]^1$W9?H!B;%^XNT8N
M^OTI;J?GS%N<0T\8K6YD S<D6-5NW$,/#7"0YCIH:>/D :0]*!B0[C#Q53TV
M7(9"?7&;<WENJ4UT+[D=)[)^C<CUHTWM^^BL&IL_ G"COP3G%M-FS8E=>VFV
MO3NPY *A!\%AF[$[,.&@JD5"Y-FY)OIXH'])<U>34<[?M^]FOA1%RUAM7XSF
M5UO&S^W V/RJ5!2HBNP3LEXJ'4#,]BT&$R@VDG*^4QWNE KW0S\7>DKSALYD
MR/R1#NYBG!5(N. Y8HNO/HSK,4%22@IXH7%D,8WJP<^ &OTF6%R$@=OE_I2#
MRV(&AL_5U[=FSW^XHWS;HLPZE'*N2N'/H\%.>>O=I3#$^;&K4NL"M&9WD(_B
MPKQ?Q(31"$2!2#7_#7TYK=TIVAM5KQX;U/]SFFXJN6%VP!ZA<_KL[BW=[RC
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
ML7/G3OZ03ON(WK\#>_^U0(A3V"QG!V:E56' %ABBA5R>(E!:"&\MUT:6K!(
M8U.CB8XS]#OXWY'SCNZN1GZ"B9@0F0>[EU^VWF;Z1)NV@A EWO,BC>X$%.!I
M%?0Z3M@V]BX8 33;M<7L!6/+5K;UM_P]0F)3W<\.]-D5; T<5W^)3NA:OGQX
M_WI-=9<\]B(800NA+J33T-2<Y(;UD#Y#>I["J\+5W+#W0T'A@0<WK>P&]YP[
M25\^<? M+@ 1TR7"@KBL+UR>R47[GB\TE;X$YPN0M?GM\%)1G;XI?;L@N2C.
M4?KH>U[%Z,!_/SG]87\F(XRAM; W@SUI]7HU9U&+'S.+U:?F?4M_4#_1&)ER
M4&W5;P:1949HS4PU=Q?[#6.E0U*HSD4D=AQ81"4AZVS7PFD.2VC(4?):8W*G
MB5K<0@?)UFV!IRW>3> :M*J6/W?491R)="XXY/>^*!53X\"IX?Z24*_*%*^@
M2#2O2S#4P=X@R[.!S763:_IRZ'JRO\&;<LA(['/S>N N=_1#<J6,RX.]K9#N
M-Y;V#4*=OLC^2,?#JZK<+#,I'Q]\'^2/2;DS)2+7N?0JY)8OF3U[<]J2(1S5
MC:C%,<4(IVE:O9LSF]2JYM@@YJD*S=::E;*JJPOGO9[HV2&W+]09V]V0.F/W
MB#6WI*S]$OX1<O>Z\X[(V3EZ_)FK>\"_&!CBS\J>^Z4,+5R/,U.?@<+:TY!]
M\(?(6M0 XQ'@E%@*;"89.T26^HGXM=W_+1;A,-",)WW3_.#EG3W]\5:+T<6S
MN-V$&[@Y7WH\*Y5PHR9!R1J(3U!G[P';Z>7X\^ R3: [-R=G44C))C+R6I &
MWP77O(0/A>N*&^\CSG_J2'^'*T'.FMNP\G[7S#;W.)+KA IB>?H. 7\ZNOA1
M0H<E;:ZM=AE<_-JT^&'D5XZ/5K:&V7Z>?OC<LNT8TD_#E^[(PD?!,(1%<BI3
MK6CV9]2)">:1\))9$B9@8<W(5>7;0F$86K@EWZ[ "/,A0]Q^3>18/]*3LR'S
M$'>S!@);HFRA%3)7ER*&ATCF*QZO8GJ^8IZ:" JJ5FSM<GNNE(JLOVJ[?^C;
M7&6,U]U4B^?\NOL"?Y'9_+N <#;_-TY6(FB^DI@0C(LIAJR!"5MN#GL#]*3Y
M3%_(6\SIPQVTV@Q2?MOH%O;$0D3L[151XY!NY2WBEGJMN(7/=B";E[."G%A0
M/RCE'BJTP0'4PRZ^26,Q6D2#R<'!1:>'^F5]'S1N?FUG:!!U#O.%B79^I<DT
M%3W\&WA0<:L9=I^*RD$T\0PLLSJ1% **%WI,3O9?E!\8#EA:(T791_S/SZ8Y
M3MV(]1Y?7_8P[P_^*ZE[$YTU,KS7WHZ795D#87&E^3^;"03*3\2<@SM-J3Y
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
M(A\<VJXE'B![,R08%O5KS:'_^Q(LFA'S@G(G!%QG2$<-X2!?1HGCI'\EQ.S
M;N"C$2)A\[Z4TG4NJI#E)1LYQU91_9;F^J[\,^VG"T>#3)X(G+@TL/"U3#G[
M'4\[).&/DO@&U6ZD;-0')'!9Z]'"GA8:*H[@FX;P0&'(9DDJ]@NTRJ:KIKNV
M/B7Y7],5/H.^+3*H:H1JCF>*;_X7<E6.Z]%!(WW30%7C<>8%,(O&N&"X-X5B
MC3F] /H;ST3-1U26J83^T$@G3)^[:Z5D\4TO<6Z0D_06A0PF2V&EI[LD<#W(
M*)A_KL5T/Y+D0!3%A)_OHNW-S2'AXAMPZ?I"]HM3MAD_BNSQFO-L*_[6:^_C
M#)@_.$GJTG$-.*:P +$)#US&@TJCQ*H[J[T+LK7-28NCT6$K7>.:ZA,!PR'J
MMQ^YY9V46\X^5DZO7KBI<BF*PO4GK1<%V"(%%W ])J92$ :7P;H<(KP$=?L6
MI">PSJ^-^Q9/_$X/7@]4#+:HG' [*[\OW/Q9WH&42 ,BM/00?%%:6,7/[#U,
M6T AJQPT<!G#7YC\+=!^A:$V^W3NV]J \&$N_ZOB1_DIT9:J#'C4YRXXJV4'
MYH6+WX$UECX(G;T9NBF/N2-_QG_BG?Q:Z4FK]208U[,2*Z4O,*'Z$S(UG)P+
ML5@;\#EM\?L2FZ^4H81Y- O^&I0]@1 Q]M^]&4\EQU8;6)K\?H0 =V"MI]0E
M'2GQON23:OL%B5Q+::!N,Y609 QGB#-=/[^:W*@V%BC'^G79[K:^$^76$K3^
M,BZPA2'QI-+/^98KCWQY/%/6DY;Z=VGC%>,J%@4^ONL+H0W;9%I U)&,NQ]6
MN6N_Y&%2(YS'^L</_KY4; :[0;B,]"'/DB&+\AQ0ZB77X[HWA0YE4FUY5D16
M2"89+YKZA_R5;PIMO?M6%&[<WJ[]-9?Y;Y) >4QN7%X+@IR1 ,UWG0.Z'[->
M=?!0V[4>9PRI$I&Q*/'?[;.A_M^R/?4RS.B6'[A&?+/U=NN*&;U^=R-$&D;#
M@2=Q_0:H.HB1-=,/LCI,92_>9#KP)*)#;7S.F;KH"QV5:]\=Y)QZ7L\U]O<%
M$\U]VJB&1G /XP[D:,MPE"(<< NQM@-CP+&>X.A+< OUD'9J<?3Q$PRBMZK$
MST,\MC1FZ^>XMOJTE([Q6S=_FDSIL[B,#>':_GB>O_1H4UUHYF/346Q> L.L
MXHT26YAXPO3UUI=$:"24F?[+T)3)8OGX7\+K I?3&-)AAFM("L7&=-D>^D&7
M_>DN/5TJ#% Z;X;HDR=J#@)75(%J5;80;K+RCQ9XH+1[!U9W07JN?Y'7YU*$
M)4KXIPL/H,CB?0GOK,YR)5EX<TN_4TSM<!K  VC1H[@>*:3O'PL8KA=QI/N/
MP;3R]$PNN]3WM9]3V\="G4&TO[_RQ+O!77;B]1 /GGX'W=/U/**( T!QOG-N
M/UP-<%Q\6<Z>1U0^;!U@7GG*UMM%UX_:ZXKK.6W)%-%B[U-FO=;'STWTR+8"
MR,'':QN_T0JDF49BMNR=_;,VL@_:(IT_%Y"\TC2K;K9?:=J#)AO^^TM_S<I
M7D>"1\F])IY4Q.!H_+9O2N@H?+6YS:Y3Q K]QD^V2%F9[-/2.\R=>/=KF?:[
M]G ^84KTC:AII, .S+<&5$<QQ9P&48*F^[!F #Y%#XG V'\S1BQ::YS2O%D5
M]BCM0UU^4;+1F4]?*BVF%6Y$OW=2KKJOOUOZY;FY\I<\B/-L-/(F 3R$8(I[
MLH7R::'DYF:F&)Z>.<FT N),'!>08BNNK[%38U:'4P_K1^H3I9[H&A*;[1*^
M6CX-<K9R0G;NP-X.KMM1=V!SX70S,)SA# 9:WC><&_20:IK\.N%A\_T]-><F
MG?'6(.&[B_#QO936[H^'N3ZOU-M(=-@8;Y4?/.(;?G,/5X;5VI'/>4LFNSJ<
M*"RGWM4[UPVS\TS>/,,-(W6.VY#C0LP0<03@#$KN"Z['GT!I0<@2*"4(6?-
M!7G0Q!N"HAK[0'3SF%)[2VN2;99(BZA&8]5DY6UVU]=WQZ[<9K2B'B ![Y)"
MU5[;9%PC8JV4QC_-,!AP#1M(TO^892!V9&)#7\WH\]$(UN1$=^G"Q<^,=3,%
M> V;&"6&!.Q0@I 2G.J0\R]=V?Z-%&I$[<6,99VWKI@="?$.\5H.>++)G5VG
MZ1QC?TWG3  WKL& *:Y*C>]!IMQ#K]50M&"8TL6T_A&W<T&N\'@%6,SGC;7?
ME![3^?NW(TPZJV);[[Q1B,AZ\9:W&E-S+T+I[)4(<:F;BJIRJ7S=?RABH--2
M&E/.@1;NP'I-H!0AF\D#Y$1=F0[?2!K7^::D=4N=6?]:]]5CEOX*$2+$;/J8
MY[AT_:=+/"0R#Y(3B;/'V('AXL;N133@>S;W8X7 UC)2U6@<!+!EY0XUT,2#
MVGDN3JH'!VM46QW^*74OV\OKTH=B"S0GG;KD'/T<M H=?@"(5 ]9VD)S);DE
MZ<)XASY5+BXFXCP/;YC  XEG!\[Y6#POOG)R:P0;"*']9UC3AK$=F"?J$;*Q
M-%83=8%&@*A=\O&IW'WM?@ON(Y5.Q\,-!.T&#V1'"KA(?7IUL!9)V1@5"30U
M@IK28,)I.["DT,]-4_JHQ 7Y]DG%+?HS'WQ?;D?&8.I,E#9[!'8_G!$,3<=]
MI"]YINW[#LPYB7X-G*,I]70A)J/Z%\F/NV" =EZ?H4WWDS, SO^JE;C8^PP1
M.=Z9UT.,>L4GXO*</3B-S;7F$BP"(/3#9RNH>.)FFA-;"YAT9>=1$0\]^/!.
MDS=#ES5CEB[9->K]^:64K5'W-KW@B(0(_;B)$IO?C;+)-XOK46>;@$JVP'Q*
M4YHO($>DTUW=&\LMT4'BKOKO'BNEF%V^3&H_'2WE-W!,[3L.U%<Z]:D!#QZT
M[).W/3\6I%$=9N-+=)+-[^^L*\K)J&Z,X!]2@PDF'TP]T7?\W+FQ>X=A7 LX
M2CX*<-R!S3JP^9V@)O#[V4((8;_2'BG;H*4T 4R>]=8?&\DK*46LK\?TNFX8
M%C[U&Y;4;J,8UJ6I?8+LZQ(.5#U+H%DNAO<%NHWN=ZOIK5()UJ]@V?9,D*S*
M4"8D5XMBYYF1)GK@8%9O HEW6_3B9Q_$"5P/ >@KA(3LAZ,4MFD^%^WQVX&)
M*SVO6I2VV8&12$/S#P9=$.QM_1S(&XT#\!A.W5L>^ZB9!95IIIIG)(ZZOENN
MBO_GSUGW-4T5=\,CAQZE,UIE3RJ?7A)JLKQ*G1&&0[S.$P&>1-$/L*H( 0E(
MSS1QK"Z8"60.;%=]:@*^I?7+\\M)3)9>?U95OW]<3TI4DU\Y6BU#POUYENT$
MLFF4*6Y)T5K3T'IHK$7;-^Q.0Z28*@<66H+AP*\>NMV7GVS%#O7$8?X193M+
M61DELMZXI2Q:YN83M5]P-MP45*&."F'Y00U&*'A\SX2I(L9MT<M4OG[ZYF65
MX1[]JL_,D[>'(W1GT&G(6Z.'3&DU-=#*VTY;$Z"DD=3H=UC%.']4?)0J#;<N
M4'1UF*<'&5? TZ;Q9M7IUVL9KNYQ92MNT>LCQ,W]MRG9/@/O8:L42+4',3S4
MS?4P"GZFE$YD/6,?8$K1PHD#6VR%  75G/.3>BEW[BSJ-UF/'-^B>KYX-U::
M_?/8N*(R^O34_SP,";CB9G79?#;4=V'P- 5YVE1].>IMDO4X4Y<J%Q^SZ'-Z
M58;PPM(KI4%2^]_ I9=ODQ.9G .A0 "J\6\"+A@^ Q]$-?R-->:CGL$O32*!
M%-"R-WS:,'\C&]GP^_C3A0![WAOY<R)1&W*AYV;E_M;O+OIOYQ#'#3GBGL,=
M:LH)?&E+J4_>G?N!J_MS&_\._S':A$SOAYS[HQV8#VY6\6I@$[+>=Z#FL8+H
MF.;4] !.I N!D?X"HD^U+BA%NNB?_)JXX/;H2<*LTIWR?RDO3APVK0#"UQ\"
M4HL\:XU%[%D//IH^NY:B@3[=_+EACB5FUC&I61)SH_Q-T]U:JUM;\4$IH@/N
M5W6>\+^(0#'%M;H+!,8X&WP$.6.>UZ"3;=U8Z.9L.U';GW0EZ[4%.N#)#X<&
MM?T!NU^>3KP,@Y&TQSLBV4)![:T0>H^19HHS+GSX?M+82E;RY '+A#_&\)<K
M9@K03]R<7(#-[(\0$9$W7SS%RC/67ZQPUZ)VU?B6>@1$J4[8?_@I^C'S^(]7
MHGH)25_3&9_2,M\+.J%H@_0M@-"'2PI'U,?WX!]&'0,)-)WA\TD.4\92E%TW
MXL\TY)A>(,5NO H)\O7^ONZYW]8@7]%^2.[P/*H !01RB[@R[[):JZZ9E2$&
M7[]Y>0O6]ME,@G.^7JN%5;P#"T0FDIO@1%NN*)(N*$ <9X^[OBA0&9ON)MVM
MTG7-VJHTL X5?"SNS_W)4OK?9;/;0WJ[_L+7G"#SG\ J@&X?)2&(Y%K\XRAY
M<(**'$CC)8[_) NRE5< MX6KI\NK?1JR%_ROMR4K%7YSUE5Z+.%JW'D7)8)#
MKQIII2T<8#W#^=K.D@=04EAO2H6 T:C"*:KUB.;[X;ZDNW'6SIK!C6KM&-)/
MO^D/YP[^DCXDPWQ["HF<A_1&6+,Q#3PB]0!)>4.6A4B_<*"',>#25-><BN!=
M(;E7OPJ6]),DV>W5\7(K.ZB,_2#C]&(7RB#J"TH02:DF .=LP<.6_2CPB.W:
M :")O&390TZ:F U B78A*G5L<*6V@;#D=TI)?W^*1U3F"%<F/C[@\OJ@WHU=
MVUH,3E''4U@Q1@ XMVC9ER] (:1A!6JP1R<K0\E2/W#"H<.1UNV1<\^*GGM>
M:2X(3>?V2U6Q/'+P?65LCF#4R?\RGUTF0!]^G"(A]:-,B:7N2\-HH=(D'/4J
M\WICO<,.3&Q3R*,HQW]_N2G#K;'QP]O,<:<+7Z\YU4 MRQ$H;PBUJDP)G=5!
ME+PI%^8B]$_HCN6Z\2JV*FC@FN5*E9RYF)VCW79=\P:QSF(95I,PYG7FGT&$
M%%-^_7HI1+#VZP<F=7=YEQ)-^-TNI&;(*)NGW4_=@57!HO)7<K/QE2M-VP.9
MD1(C55_X]!N)FC(J*='>84HQO(H/-QVF8W$]FG]20HA(P 8^NX2BZ25OQVYV
M;_*-1BK'JV]UI05\&/R2F;D1.._'!>S V(+#J2=V8-0*NB*"AO);>C"#\Z<X
M;>R)4H2Z_9SP*VP'1K^DE\8:FE[_ XN06F]GW([Z2 !L4='-A ;4NO[B2F@G
M/VE#34TM4,VQI?.S5K'@C?K&V(ALWYFOFF;\R1^N7'F&_4?K8PN@J;C9W4L]
M70=9;;@;R"0RK['(THBCAL%9VO>N4#>&FMQSX7?I =HKI$>_7 RRJ[^=UX6E
M]<PP@G$]?NI(2LZ"$2L;:[)$!@^G$D+*, Z]*!%*.U" IYJ<M=(7\B0ZCIHT
MT]T['(F-'RI[%V4.+%VW5!_[YYU#18&&/(.$IM*!-%!E/TK45!<K A!Z=V!<
M!**)@KM6SW;)JT,5BV7>F(TS]O-#7"H%+T[K;C0G+Q@HRCR)<X4Q>-C[[D=&
M$L #R$&9Q73E% HP-_#SE""2JCR>H/BWAH]SK(@'%O4>]U:5*19.@4<7@TB:
MT6+8<FS7'HP)-NP-U@!X/^]?('5W+$CZ5.1]]?2^_1 L>R_8?X?KZ0F)%1R
M6E'.8PO5T];J6GW0>S"'Z\6&5%W'6FL*"90G"GR 3SYD"U)9!<;:I:#UA8<V
MDUU[P3N<5$.]^C$_K:LT^8(]SG63UM4SSFV)\MU-3_+*-)./7Q.##,!N3B8'
M2A$9MH[SJYGU';@3<$\O1\._S!DU]T]JVV:QO)XT;Y[Y[9U$5HMZ<J6,S-.8
M^^4$"21E832.3JC[RT&!BZQ,MJ@9G;"O(>]WV]MQJNH:?5_SEIRS^-TM:EO!
M@2^5YB?[HSY_XG::GG+U?DK*+@Z7Z.SLL-$@_GHGHF0AX^-C#(,I9W;O)N1!
M3&<PFI,)%@$B.5'4^::R@6U/#23Q\@YLX?L'O:]+XBEY1PH;/FUZZ.PZ=3LL
M4"^C^NX[?3^P1YG=!2EC2)<&]G(CZZDZ!!]L9VML\NS!,H9%P":EAG^E*7QL
M[D);I-FO5:D;5J;.&4:\W\V/+!JTI+0.J,6"TU3\7,Z2ZII)%;M[ M<C%UIE
MU+V=$XVDBD]4*;)>-I3(>C?<[95S4=H[L=EM?T08O_C8!G:_F*$9]6F!FU4)
M<2TD-QNR!8(;V!'XH()LPY2Z>(O/(QMIGUC:^+F9AF CG6/K'CR0P/4YJ1>C
M!O' ^:J] J,D_N&!W)(*+-LCIQ#T['42T_A0;+#&N-FKIG>M2-L<^4S\ZX&:
M!!QE'$X*'RS8!_CVXT'E^'4!\=SP5%->3/G6JO5X<+$@S<4J]!/9K60?_RFL
MP,9^ WH,)=T-!]Q[Y$<&SD-Z;*2H$F6RXG;1$$?,<WT)O\YJP%&^XV;RZ'I@
M9C@EK^8A3J(CO- OMYF.2C0.I]0(]A^*+T55!&4/H355$XV2$F8D0LT;7<YO
MJE=6_&;G0</09J4VCLX,]-$9P"8Q<AY%+2@N'0I'E_\PE>N:#'8:=I'U*VIL
MC+,JS- Z9*?HM5M73O+HWL &&L]:)R W2*B;'UW+K,;JCN=0-\JHNJ]LJ'F!
M9U))1JI)/N\F!94TS=7V7>F^%BXX_17)E+W'U@$VUR08EYG[IL/XM/20?)@%
MMKPV^9"NT4J-Q+L+7V$6'8*7;^>,1IF9ED] (T/-./6CZD]'C:&$V-),>YK-
M5.&BNZ450.[;A&-<C3IQ#G%#BKH_SRX<>:Y1^: E!3OK[OPB.O:!W4\<8(W@
M%$;DO%#Q;9K60SVPK<%$]K-E$FRK,8@!R?13;RQN7E4EW=@JRCCY:M]I7;7@
ML][[RCH-L!!DW>N'D>II0S%%_Z+ AZ7@C?<:X8Y@\1M2P+U>MQI2<!"EJ>'8
MZ:W[2_M]_%T<C"Z__RK8+O9M![;?%.Y/KLMA*IP"(EU B9*2//B UNZK@05:
M$Z&_MZ@M&8$:/J3U62FN[T&&:B7(_L.:=^[X<?W.6UQFBD-F>31V!Q8P1YY!
M47AZ1J6PU\#ZPA]JE2"^ST,PQ[:I"5C/B_ Q('1.!E=18K^*#M@K^ZL<M%"!
M70MH7K.&1GD-E&?X,._1EM=2;@/+ Y#$M)AZIPR2HO:#](^SFDO-&K*L\H5
MJ^681<$1GH\U[PJ.PRHJ$.)I1&2=4S<*/%K3#^DGA")VA=DFHAIV8&F_W8Y$
MJ2EARBHY5/",,_%.@%-U1I+ETTI;>B2F6O5^=,*8E>IW]$SYQ)(II$H\(5CG
M'5CLWPJ,QVJ_$V[7P4Q']%[_:4G2O;*F,>.6)U>ME3.>IG@ZJ$G\DA'@7>(^
M&'T_CX9F"ZPR^)D*K(;?6C.1Q(HE(YQP@.-T<QLA01_-]\7_WL5T[T#?L#"5
M8>M[M58A,FXN$@JDDYYW]NU/3[2=&64+C#(.L&?(XEU:6$U;+@PD1B)AK]Z1
ML%&) *08T[CMJE4Q<2;[V^2[<;<@.=1PON>=9&G!^"O_U-C\]RED?G":O>\M
M*SD4+_E#LBVEAJDHZGZ_8$/QAT]3SM769JQ"R<E"*ZFQI[(L(U9=EQS[0\%)
M5DZ4R@]DXX7MJ$R*4'C/7\<%Y-1RN^19$_T;]\=->JDYPWN>7[P(-PN)V?7+
M!R)7>]X!K-&U,1PCE&G,BC$]CBFD..8VBXW2E&P?6L16JU][_CK/[J%-RZ1G
M9Z3%X:_O:&=/%VI?BG[[5T.+S@##:)9TQ8D=6#!JUH&Z TN,TO1K8V<$=VA0
M-WG\5UF%;T8Z%P/O6CV7W)OJA?GF>R)Y@*D-0SRNZCJ(F5@T8(KT#2*$<)0\
M?/T?_$.<#WD?5H(F'_>0QK4DU/^!A$_4(TYL,/\UK!\]9'7<EC&>$Y[9-QSO
MYB+VK7J.+629;86D)! $[;X\R24G?-YEPD,?F1W\;KMLIB %>2D89/_JF9&L
MHE?@",UM<7 MB88:,"03T6DCRFTUT0V1<BEB?<=P/BM-MYQM]#^OP67G^L0C
MGREAG]VQUN5GH"EI3$D>2OR [=PO3A44_Y_XW5&'0=7%[,>OABH")#VTQG_W
M^#15[->I4.G/?G6G#FVUY'TD?8@[AK<F&?)T(^A_VIO0%SKJ#YQUW'^2O)<3
M[</6V('5[4&PTUTN\<RBFFR9DG*4FC4$PPR$TW&L5SA?<F+V':P-;?\]K0<=
M3B4K;393F65?]*: VH7<-#Q_X=7^%FM^4[ZCE7L#IW$!.[ Y.6KS6E8)Z#-!
M;-O;NH@2!U<]W,6Z/;B!X@:'@*X#A"V28ZI$KO.KU!.+9S-<OF><N&$Q?.+]
MPW_UT'HXMP,;(D;UJK(KMG9@*QZ9'O\@=:"P8G!!:217^$-"(YDI5C%P-QL'
MB=.7+!Q@6!.OI_:O,-'$1VYF?1R35<(:RY1\4W"UV!/S_;EUF:(P_&HM)*F"
M4>HF*8E*6'M(6Z9K@J7 KWZ<^.;F-:"DL*(I_7[A597BY+^9S7.AC)7)<Q4P
M!X&C0\^O1!_)KBE7VU*E2T-/H&.XZ-6L"N-=# G(V3KAO-:M*<V#9#Y,8W"'
ME,D7L9X2]]4[D"D]FK!,G$HSEJH?%#6R$>^Z1FS/U4=6_S_5"?B_K\NRJ?F>
M%3/#)3\=A_7$-&=O1"6;"-E:^#IF'?U=?+[R<J'RA(V[WF__TD*;X'B9\SHV
M1GHA>. -)_[U4[[O#@R+H!6R)1!]J&TQR#-O/F3KCXVA]-F%MVQ9 L=V8. A
M_ [L((1:_;XC?FVC.,& NB\@"V0)3+,?K2(9$!]/0?SOCZM.341.!O/MP%[Y
M(" =AE;65W.&)?0L/.3SN_'_7BPSCR+C"+]5779@9!ZFW__QM-!0N_^C=03I
M9#R3G</FWH%]6$92[9@0+'AE.,H&D4N6_]NC @M?I_V1B\']<(F'9*ZW _LG
MS![[@%S^30!4V;X0%>%/H]:P^*9P?R$&(8N_"/I33 YN:UC; )V5NKUSK[/$
MO]F^^=Y\N.K(+13/I0K9AKJ?(D]=_<OU)FP"<@,,;$QRQ6O!%8M21QOD)O+7
M$4S.%<*G#I/[5?Y1LIU3P4$:7ME"2C89W"V=8?9GM/6)M6?D$TB"&0>]4CX4
M*F/E&.IS[(4N;DY)3_8G1$,I$0VJHI,Y,1UDJ5 "GS][?T<3C1!;2GAK:"QU
M3*\Y>[4\NDQU3@4W;USY6D7.N7:0_-MI_,4CV9*<DL![W@-)5?Z?/%P6S !W
MDOOI.@OCB\4N\L["[T\IQAP[U5/S8114M60*;RVQ^3B[[W@PEF'.Y)UP8$/.
M"/[H7K*L?C/I\A"UT]'&S3J_H:XRO$/E8/8Y+QA5I#"DE<MJ.\P"%A4!2?&\
MGA9X.'Q=@N'!% <&HW$4_+V_">P]6$TP!YYDC+ZS8 Q\JR(GHM4_#Q1,-4T$
M'(T:Y:[4O'M5.M?WLF!ZQ/6T'SSQ8=;KZ#ZZX<=2ZO"(PO>-\9/5>OD6E, D
M56_!3^^O99Q+>J7B/*A4<HKTX9C-^\-<M"7V/C5(3%A<CSDR&$%"4Z8'\* J
M>2VS7#4I:M^"[2V"J%:']TMGBWMGZ,V.:D'[FQ<B>553[WZH[8_+>ELM=VN[
MC][V"1F$G*MA\\G05"G+23LP;QM;ZF#_IBAXD6QMLWN)2 I:?]&6G-'7%>E6
M(5?VKNGLGN;SM>_*2[_=]&+56,"P)H#E?Q'C;Z(^(H0:"''D9ENF6!Z1((:U
M*'8N+L2>!7<MVBC9U4_GB\,;;'S+YIVONI[KWKWLJ:3M<RGZ7^#W'9@ X;HM
MJ8+.YFQ28LS9_,\9M[$B#ZE:C]@B/X1*F4J@6UC57(#AR)]AO1%6<=EPP*B@
MG.N=E=U&.@VWXP8&==A/Q\P0F7C@SO3: V@.^3F&B2D'I*T-,E38_?<^K^-C
MF9CMC>+%D?"!*(7:Q@X1DFT0/VF ]#@_J_]#ZH6QWN':L^/.Z]O65!PG*]4>
M"R"G5PC>TXP"SG9ZAXVH6C35[L:E+LA([AL[7=998N5QQ=ZI0?#L/5G&V408
M\^T4@9*$;/S+%&?0ZX&_Z] BVU,,9E&5 73,=QV,'/T>B ZY'5(R5^;M(_4W
M4]G',40V8L&U]MG1-YCT,V%T%%/<:1#1%!Y-\+GOV4,&;-&S);\&<,)A5:++
MML WIJGB>&BG49_]4^?QGYZ186*M9M\64Z6_.OK=;4T6=OMQ_C#7=S2H[-N'
M3,##"-<VX_'U:.(.;#;/#0RL!,5ZI^[=K=E;5NWO^LBPZ?7EH<A(;M+]+]\>
M-6NH?_!QS@ME'NG1QW/"2L$C-#@GZB8F GN6E=,EQ1[)K2'FHP>C$+F#EHUU
M4Z'M<O<U63*'&CI;<BZU/>3;O[(_^DS=26U*+,^M[1)(#I,0NXKHDL7UV!-N
MX&<)MJQX)!HQ*V!7_^FWT-EO3*FE3JV!;0FFI*2#5'[E!C45_'+=U]^X^;'*
M8MCI-[4;1HAF7Z:HUI)"&B/L!P%P0H.'I!)"Y<66CC^72E_"[P:SG1Z>I?UY
MG&"A;&\C?8CTC7K%!F+KEH*/!F@YN#'#PUQ;]8L[,*:\"P"G1](ZR/4Y@_@9
MWR6IAVP]-W?SZR$4M+!5X9Q_^L+[][6UG[]VBK!2DG9K&5?%[F,&?>]TH"M"
M8W?"7IN&((Z&)YN?S,FL-14JA%HZ].J&NBD"1/3I=GY, _Y:S[Q[TF_\P.;S
M=(YRXGBL2%SN7?<!L^$-/'!I$U3Q_>\=&!*\+Q6##*B)+8N\?UU,\^'B^L%3
M@95^WUJ1OJW\4:<CM,_5B.V7/&VFE,5*(_B,@H<MUS0H:O!9-CQY011<I\CO
MDV@$FDJ7DMJKN(AM%HE"M21K8V&/4V65 ;L+Z^9.[)>\)@Z#5P5^U0(U#-:6
M&:Y1$X1ZJ4=, 8;P3T=#-#%(:W$S_L^ZP-7/U;)J)D<JO3.6UIT$RY0BSK][
M^<9ROD5SHEWBS[KX+EHS-$D$\#"R#R=@02604&P^,9J4$RWY>,^^,B"0N+VO
MBLJZ>.V8MY66OD!@GI[/\G"VI!>/##;8-(Q3.N&_"B;CIH>@SU3L&<Y+9_;"
M O^XL<Q2C>2/]!\*NT"7PI^TGR@@:<5*7%M&2^L@:_)OVG[^TO?JB2I/E[]?
M3OMM"*D.)ZCS$;L? =B-QN& JUIQ9.!*V@R.'C3&UO+[!/*"GOT*$IVTQI)8
MC<*L]L=%_ANVPS*IBT<DEJSR0B^6F%YNYE0F@FA^S*FH,0)@CY\-I(X2UU4'
MN^0^(?U''VV_:-N,:S31*$JRUK'6^6+Z-%-G<T[ XN:!MO1=ODU?5J3SZ5'I
MD!'9ZQ8U@^)$A*0@ZU4VNR'/&D9(A(!JG\,GY7$MIGLUV&R.VN/O=.?,]2 [
MS9==V1N8R=KG0:^;TK=VHY5TG&P8!I OD"3X;D*&"+""K#.H<KRQ?*3<W_00
ML/Y508=F++EX<C,LLM+HI_8K936+H[W7'><;-5X[:L38SG)R596N(8%1]C[.
M&00#D@>[#\%+\$+R,"- W[U5QEW<-'WRXY<-31/C_@*U3I$M1<VQ^;E.S;G&
ME<ELMR=WR,7D>GB?+:F=?@LT6$2G$1H*8K7ZR:D>)ITQ?_ME5?M:*RLK&W[<
M2![T+5P9=&AK3E&ONE(4M'7.*\,MZ?$YST-J*R1H&2FQ>6VAR9UDE4=Q87>#
M\_^]VH0H_W7K1T#\0)KXEY_-X0"FV7PR] <E]U/1DXMO47+/OL+%/2X_(7XU
MVOO!S6 2!5C41),!9SRH@D_%>C)T,=-T79I3"LYGKD:$/,\\F8%+,)4R/0!\
MM3%ZEF06IBV@_,ZN)-:;/R,G0R?<D+#Z37P74--'?DP&[ BS;O11\/N"(2O>
MV(4F0(E/[@C<VTA!B(!R1$.][>H<+?J59"D1J^MA]P4Z&S*Z/Q3O^_WDW'F=
M]\6W"!0\$K#5^A_$O7DXE&_\-CRB[,F>=<I>2 O)DDGVY#NDR#I?V6FH$#+F
M%ME#%$IE"*DLDSU+QJZ29,DR8A9IP62F9=S,XKWG^[['[Z_G_>MYCN/Y8T:.
M(S/7?5V?Z_J<YW5]KO.$A_*$5G((=#>""H_?ICKY,^3[]\1%]1%VUT?4:4Q5
MGYX^MQBVE37GH-\EC=2_=[E!H_'(;XU0^ZBQ[R=E8.Y?"M=[5PFSQMS=C1/=
M)C[S2LA=V$_;,+&_XFK]+GZMBR>O3XMZ!#?K?[2G/9T_<VRC9(/_%;RNY0NA
M-7;M*IW _ Q:6,BQ;=J[)PV:1SWGO>B1V=$><B<=^Q47:B*;I]:^[+M5HKUF
MZ>X6\.^%C++="5R10GHL59X&H4.!%7"4;DRQR"+F979YT+=ASA/-9IIWM!]&
M&=KLD4-$!]PN[9'VA;/,L9,\4=>Q.2^*;3;](9/&0P9@"G6HY4GHN(?!P%B2
MK\Y$R]Z6?L6='O676QP?BF;'9\ ZD][0BOB.O4ST9R&\,4!>SU(_J;D4]^0M
MU4?+,MP@H\MXOY<X]G %>NWZ.FO$&!L[?^2JTA>-QGKEC?-\FQ64O-DH9OW_
M=U_,!:O*NY^Q#4-')KVE Y2-7J5=<)%NI94;G^K+\>&*V2:%,>*6=2J49NLH
MI=H=ME<^[C.7TX*#)H+,,$XG@EP.\:5*>,/86B9+:?7&YSL@==A]RMSO!4@X
M]7*RJC5Y,;)H07-JYXA)0:#K5ZL]JEZ2KV2U_TQDP3;'N,*  4V"8L SUQCN
M01$=F;XS7%4P#^*I_0MPRZD(/,:R8D5.\=[T]0;B _W*EZ]+O ]G.&1>RHO@
ME'4?Q:J U5!/9W Z /(#H"T] R"7$^@V)\WZ2[7IZWDJ\U3WM;_4DRZ&WR.-
MWP0"+\?V7_1WV1^O]OG-]-I:S==!=6N$U[,RB=O=<%X'(")Q<(_^)T#_7:YN
M2+=&_I&CJUP+^M_6G B.</C2M<"07JX.[?&;+[8WW%NYHZ0=7&T0&+A1/4PB
MA@]Z^K8PM >.9P;10W8@U_+$0K/F9QPGNSYJ1!MD:G?$>!RJ.A]T<2E+R(\I
MH@/#)[-=_SN9#N7NX<XN'J$+9A'(=Z\#DMC=V[!PTSC!(;@X)L8/_>QU+A"C
M.>692JQX9[<[%9VL3'Y3=BSQ!X3> BGXN6/,9$XSX3(^G=0Z3.NESYRERZ70
MKXO.8:79FFTSES[AB]T[K7/1*+>.I,2'[W-/?/JW]>;3\Y??!2W\.D^B>T)Y
M>C@'07Y":-I()9&!V]$<?BJN#Z](C.NGM%;4[CKNBO)Z]-"QH*S11OM=;-*9
M+H>AA1Y.'O3E^'!6(';!=Q_HP4GUYUT897PH9)SQ,>]!M^#E0 SH.0'6FV],
M^4WYQE_NWT/J; U/0Q6_%=2XAH"XYYH_(YLK]!?ZL^H4LOQ:-;T/?AN0:9ZM
M-Q(V7/Y4UYQ]TLN[ZYYAXX.(RIQ+S;=DG?FDS*_HP,P*+*:?)"%D$,&=!-!T
MF G,L-T9X@AR"6HG^\(22GD%=YF!RF$CEQ),C$3??'S9VH32]<H]H4?+S[**
ME#JHH_?%L,!!G0-1.(%?O'/2+I0R(<QE"0 /"O9%"F!TP%@*4N*S0QD83)G&
MB_4/F'8M^]EV!1 Z\ZG)NU[Y*1P9"HA#A1N>&=G@K7 &M#P6/^8*: -E+P-Z
M'EM.G@FG"_CJ,43 1+8^HYIRS_3QZ]29K.8@FXL_U[Z]BDZAW8F_ C\8*JGI
M97_>5-:L@6O&'8;#"60\1.'[4!FXYHTUU@OV 5"<CO0 ]LR!9D,WBG!7ZT&2
MCP7J[K?Y'QORASTO]B__F_Z@\IZ#VJ9?@!CNR?G_Y.<$OPWW(>;GN:*9%&2V
MKR88PW+AG2NI,^3NRN%-XUP' 6&L6JB+UUB8<L;9Y\]1XO-WPQ4<^_K+;R+Y
M)PG!B-G))8,!_/SU;UR14-;E[R5:.4NB$D)P$;8>&%4>%NR<TJ=XOL"PS5C>
M^*%D1(Q2VG6WD'LV,JA.MV+-X1E#9\%^'-V-!&K'#I&(TM1OO0;S,\R3B6K?
MJ.MKVS"J'6$28X G)1:-#7IZCRIT3)8L"7B=O;#73ET\Y<.=(PIN/@ QEHJG
M%;+\L2.^ASC%6+G_JK_#R7@IM@V]ZEO:WQR FM92;E<>=TUI5I7X=;FTW[FC
M%!PJL!_7./SR3NJB_[GP-8A5+>'W8A0X+Z"((-$=22+8=P2Z(W#3!>/"&$MM
MWANM+[+D.[T6/>\5ZN'KF./[Q0>Y]^ZQ8V_TE_R+[^TX?<"(OKXV6 /T3A$:
MVV[6=QT@CX&:Z[TG4>>G8TR,4/)Q_0.^IJVO/G4Y/'\'*V R V?.F]\Z^.3%
M"SN9D/RA3,6#$L0;.OQ4 JCY!4J>4/:39@<S*K@BO>0Q438B>>Q,VX0%'&-.
MEZN2(48G.XC-E*2.%<='!SR*=QNW#;C[Q=5BP%(]XH\$49Z9SFGK\O)[AM'G
M9&S# D[^0QJ(==*L1$AA#_K._>A6'O_G# >_QAC3Y[ ,]/(U.RK($85V@C\@
M,K',VT^ D/AO"L"6KNCE[I]&9J^SXQFN5+FGQ+9!1%8'^Q0*3.,L5%[6T7[3
MYAY[0$A[9V90D G^F<Z3)!,@AR38)<HZS59BN/< F5O^OG%10[ZJ7>,Q(P&)
M=9IU[_7%;GJ!7N&/C)VOV)UAO_I/#)#G(?H"&C!A&L:*I?:9^X:83E.AJR(E
MO5>Z=S&*^_/VA#*)BP7:ZHE=6XE_&)&[SYN<1S]7M[<N$.1#>'TOD[C)-60[
M_;\&[S88E6?8480@X.\4R8RFVV5?_C*)"64$4^L)3T=JB:$%SW._JA@X3'Y[
MQ'F^%'2^-/2<X6?[S>1"EB,9F@#\;#[0DA)Y$R?6W!1((0G&W1BS^5BGL&'H
M5O2R\HBN,>/X@$)$Y9>-^I(L&#C/%0YDP+DBG"5")DKQ,H%<C1#L.D+)V_VC
M^T N(M584;JW8V7J[=6OJ;^"[HSL&-+WT+BGD5IY)2JY85.P-U((Z$4A+I'F
M)9A)X"!%8J[8%JRA6U'=![U&P\_2W7!+CHG&@XH!-6*'+2K"BI^8>?@]WN_R
MQ7"%MJS[_+3]W3]/(.3,JQZXM0K0G4F@KO8:A-AZ27P &<<]"CW%F(I#.'II
M/0NAU**O*C!A^/VG>JEU4\/D>OURUP-V67GCBXI]A7KUN+-@'ADY)#$;S!5.
M,%[C^>8MT5N*7B]%IN-VNYX%8_RI!R3=75YG'19K+ JX/:(>7T!YX'_TL,"+
MNWF5(642O!O,P7%X)H71MN9%7I>"QM&&+5D%)E 7WKLCZ/D_2MSOR3I[O]$O
MM4Y=/+$<(G#V^^U30>8'WAETC=O L!#4[3U-(-_>AK7()Q$B15$\&T?)]4'B
MKFQ&P,]MV*T-REBFQB]#_%YU'8>,*Z?5W[]X<O'SD\X7'QH'C_X$PD >].?M
M@V2'WP@DI'$/0)^WNULOU/?0<&&4:M[2V&[OD"'GP]XH9,+NV;=O/PSUD.5/
M8A>?))GKDNUZU_.P)\"[$C1CEM\V[-(LF/QNP@O@9YO2I\LV.B)O_7O_4NB7
MCK@EXZU[SUEMKR2'E8]$I,D.W!V!4!UO8\J8QCLE'>7M/X-WN2+QT"\_P1,X
M&:XRVRLK&ARDWT5.U]4:.7I\*PPJ80XLF%H=89WFE+M?YTR,R<DJV^-J(-#_
M#4GSYYWZ 70O!!QSD&XP'#F7/H 2W(9!:29]\6CZD*KNI(5:F&+X*O?HU+XL
M^[H_X-J?U9IG-/2.T1-%'D^E3A0+[R6JMD-8JI-IR&G_3X"H*3UE&Q8(G_W-
MO#!E;L7)7&*A9,*PNJ\9OIG5LY>S^IB?T$\<LZ<>?QFEZ'EJG%)7\FB[NI4)
MI>465C#XD/D4I/VGS[W!DU'']G<?0>RQV(]!3)L;R=^*8+M2WLPX=G1-+G[V
M'HOA//4+__?WD5U:\1?MWCO<"7]#("=OPP2!RR@(,0NW5W#?$II):U>I:..!
M4H&[[IU-Q?8,9#H>_7>J8TJSPUY_(6:?_Z/$\IO2&=0!C]_7>L/_B$"1_03J
MU-/<=R@HM.<@0)S*.HN=(#7+KYG5A6!%.67LBS'Z<.<FQG!Z9.#'>V'RKL/,
MV2=3QH6_ZG-_PPI3M&2]5?K[H)6/E(F 8Z6 WH^$EF\YW>)L@==@?I7=DU[!
MVUUFY6%%1<1FMX@.O]R?;R,UTT33<\\[TYO'FS1JG9MT;#E]#-N&9W% ?UO'
MXEU*..?:U^FYY12[B2]MC@^'^-5TB%\OEN]>X"NP]O[[KPG^'6KV&-/_/R+,
M,VLCLF]P"!8'L3VJZLT@P"CJ^;%U;A;\W2^OF%8D%8[0"K]O^U3F>>Y"=D:I
M[;D>G;MUL!MM- 3K /8C@GYQG>A.488K0P&0$TN)7/M+3Q]8I2ZXGV$L+*>$
M^YI,5_BT3H^$!EZ]TMKJ<N".@\:$7H'P8[DC REC!/)+W$O>Y;A(7B%E'484
M>F\'>A'=NW^09".Z5<! MED]^V0W8V<K;E_J0V</S9R? =:BAHKWQM?/C4D/
MY+K,[,.^<#D%ST'1W25F9[BB*%9,7#H3S:G[@YSS[Y7;FNE;SQ2NG6?+3IA?
M15^-JB@K^4!& K7>AGN\BQ.,<BI:L_?4"X5N',GC[0INP[!O$/3S$J#.\)H"
M.7(.12&MM?E3X4IV2P\!V;@VGX]L]ZJY$$],:"2@? /=A%JTBXG2N_13(Y0H
M5(#4K!0I_3<3X0YAZWQ">)T=$P\N0$'9Q1CN)0EB^[&'X7O8\?3A"_0LT'-]
M$*ML_V>^YO5AXL/G$83F]\C+JL$'G9OKEE7&[5XI_LX#][OWY<W#F1"G2O;_
M#C3B:=JLO>"3F4&$1-74U\9T*R@F(]5FEKH^:7>>;[O+<G(S<?8Y3C')/#Y8
M>#U(&%4&0:1E)'N/(-.6)PV '<#!"2'B5LPF3HX18O</N)+Y#7/'RM6.X)QH
ME=/B&IMM$UW&#N(;C]^\RKGP)/?L2W2OW:BO.V^9Z34@D&OA=">>V99!-H%<
M!=!M7BLY,NI3&!:_O-8S$*(MNL]<G-Y/*-3+V6N52%[E_V?4,%(@VUQ?MTSI
M*(KY DH]VLQ]=!);MIHY"E91QO)P]/.HU.X]H U%@F_A> 496C87I;M8%Q9;
M:IL-Q&[D5A]^]<!-*;K(-FWN(MRDR -V>,@)=PLEBR!7 (UY-"2CTQXL9XF"
MG53!7KP,QOK5C(426-'CNV^\/D;?1+/M9E!;2=_7+6'QSA&E-[GMT;%7WEV8
MPB_P%B\26SJ<*SRW1-H)])ZUL( >[WQ7(AUM(4-DNT_6-0/"[",)G1[X)VTN
M81LW2LN9!S1:LZA?$\Y#X*] ]NB[ /27NU\)]&A<&MN'A61K@#MY-7&@-3?X
M-O<X)JR59;X_5BBZ4]0C9_ESTC6U6PM>[VES:F$<*\:N\F>AIN+,FLKOKBO%
MUZ>OC:"?>CDJ7_-Y\^),7X[N05T3/LOK%P2^W#D:WF?!SQWNH&(G%-MHGUC(
MQ1\=A$$51VM%^;3FA0.+/@8]6WNC]K]LB)=5C?]Z9[-8OCYCXLZS3!G[/4D)
M=OT 7UPLQ;W_M2 %N*5_VQ29]L?+Q\ Q-4-3GT:YZ.]Z.]K:Y>(V3(FKSCX-
M!I,W9BP4L&.+ZF#.B^Z_;>/F9B]^7+^LK'[4L''%_?KW_"(^Q_WY0VMK^Q37
MH*#N1X)J$FL0]=S)JQ&T#X/+(2@\$5\/(OASAGJ]VO^Y! 1^<[KADU\F?^J/
M3B]O?KUW)O<0,'?0GZM/,I@%FNUHO%,+)@/9MX#LAS<9LR4[S]+Q67B:KZB$
M3-S#I;'T%J'H5K^\DVCU$/:&][+5"><>.7<%URU)*/,B@5YHO2+GHUH1>4#
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
M;33ZBT/*6UYE\KU_?JPQ[]X7?CSG-D"NA2LB@DB@OAB*[@C/0K5&/&398@Z
M-T.:V(9@,;/.XIOK^,^ MJ(0VJ'Z:'J#]S*E:)>8<41( $K?T0YUNI<AP00Y
MK01R'4*6$.@4BP+OTH/)B#Z4F,?;RO!N\8E+3;BA&U7O>E9UPXK=)KC+%WX>
M[[_L;N%\]+BEYQ:.BAB,G/M&'ALBI),$HL<$OKMCS1F+=6HA)8<>!$<47R]R
MMM3;\'R4=.A[W1-[9GPZ7U71WIL+^_ 9W?S83R1) KD!17?%$469#C/=>JNE
M?. QEFG82/D"J-U+'"CQQ2^]/N6SX.GM[1NVY^B"C;]RT35\_F7ZNG3_5[.
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
M7\>S'=?]0MH:E6W4,K@!A@!Y(5F"+8OGBO@E([Z\JN:6=CG:T;"GH/D#I<O
MR[C-,L\\;GY<7]))%E>D!HI&.7",OL[\PL$1R$6()HELZ3X+77#N>2)^$+%G
M-T[\TX>4LLH"7=&]];(4XRC1A$(/33M[=L.O(U=<!Q'D#IPJ$ EU!CP)(\RZ
MR!W!M<IG0L\O%)<R*$R)5(I#45-S\!GJR52O^(A]4_I> =)#O?KU%ZC2>I>'
M]'9^[2"!APAK) HA$]Y*6*MBV#&O@@V5WQ$M_SQ>LLVC8%/J4S@/\#_<ZICS
ME.?VU8DMS4*-=QBU!?81JC*9Q%/CL80V/%MZ^#_9E=Y9MC&XG^4;A^J%BUE(
M@<A!)E>;T?J8@E+\O-I!R#Q$2;[HWWB3V#=AYH@NEDY[D/W&\;GD@5,7^5>!
M.74GSI-HJ(^.1V$G<0J8(TMC>Q8_S%Q?W$<O3M48K]-HS'<I1S:]O6JRR*?1
M37G<@][[]@\Q]\.'261S5E_?W/YDH>D3?IFG7ZC=W@F+AHE=JBR3&("#^[79
MM2FL.&#6"[4-F\H)GT*0NU"M!+8,B7F8TP($(84Q"B"MTI$,A^BU-+G18A=]
M++5\\J_N8,N4X:?CQJ:%GW]G[GRW>)DD17R29%4C4=+5R16RT^#!COW813YO
M:4X==7?ZY$"8Q*K/!EMYZA2G T%^W*[.=5P%?HSU_X&M@WK/>?LHV %<4RMO
MJ]5R'$&N]#RKW4N<?JC51G?O]^5+-3\9Z!\3+_NBI\U=;')%,[!4,S[(?N[3
MPD?+AG/=19QN@%SCJP_R2J3L7D(?=A^C2Z]K-MV&W<9(4.KL3K=V)7WV^B&]
MZAC.^N&N/BJW>N6]#-EL*"O._SQ _D;8M$P?1FUMT#>XE3=\O#@/?P*!"TBN
MD"OK!%N/T]"EBZX#1:G:?3@8B'"97#\?+^4==KS(C?G4=C%MWR%%-<W3JL9"
MJ\EE2;O#F<G@,99O&.[E *[%CBV-XHI4,XRIJNW'\W8]&XM1S:P-Y1YZ^?DI
MXS(E'2GN'[6\F;.GY>"[[VKSK]*04'3_BKRU:-K-28D&;B\QDQD7".E_MF%*
M/THBV;KAEFBY_!CSAL\-KU_IRN/,:Y:?V<2+A;X]+^8(5^2\0I"+X*TXME)G
M13B<)VVB0:)%U8_1VVRF:#^[HNC5@Y.;##N!IF&A4/6]:5R5";U IDV4R.'
M_(Q@5 @45:7=1Q TB)'MVF0?YU6Y4Y2+[;=AM[ZAZ$#&0X<';2?SYJ/?_L04
MG5 X\'5-FS__%#S@.WPG$(F[A6IPJZ'R3'><5_'2<?EL871"F?' >IJGT>C3
MW)<7'?=G+1AF-'\S4-_K/MH>7FB3;>%:9,(&H5$*Q_A"[[__<RTAW[^Q#<OA
MBF(_FZ)N=KD^Q9PF;,.R)@=,]1 A#,-Y_<^A=UXWVT37Z$;_R[WD]6;BK7&1
M0*A2,ZX^/[Q#8QO6P#:--AVL\?9F:QF[,5>O5"TGA:Z(O6A_>\J'SZ]'[Z0-
M!@+$NZ*.XD -FQZQW19ZJZ?(?SB#A3!L ?:#J?P000S#1T>E(T(-]O[HW@_>
M]*<D[#4/K?_.Y%ZH+W^A(=1V;."AJ]#$+K]?^[[ME_Z9._%_I-;T_\QK=9I@
MQ-4!>O&(EU\;6':^V"E4D\$P_#8.QG9XMN!@M()18=RZ$2#YP"N:%+S /Q*F
M_+M!0]* S]\9AH>>@_]KWAR)*ZS-DN..+<HQ;/.?Q>FZ@H5U<:OV:(-A[ F(
MZSI03T8-'+?^=]Y[P2=XCZIPFF;NT?-'?'H4-P\:@(:N7.'T*G;0*S"/ E?!
M^'SL,DD\@':D?+V[=#[O;$=&JU.-XQ>EI@A;2U<3;-P=]Y5 &;YB,FYGG".E
M+24:EU[*1Z<]S2__[GE9$9M3=?&T>O*'Z;T#5ZT4=\O*RI[G^\CG;4=#L8Z&
MX%IF>CEV9" ;>R!NLE]1KB52OQ5B>T*V>)74#^7A:C(%<]]"'D\?=]M_*U"4
M/]E> ^[X),G<D:G,267SLV!LG690FAY%Q>6VH';]N+*WV4 ")+BUO<YS=%5_
MTR<LMZ EXC'_)50!QGJAVPY%)ST(0>2G7*^BE_ZFNF>9ZP?6GF)N%?*LWLAM
M725S2W%?DAP-C]XO3/G%2+TCJ^1]32+4!H9Q8@D#O8)   '4FLF+- =8^S%>
M8 NEW<A%9)5XOOM0\DJ_6ZZ67N;52*,:]:6HI*7+61J)]9TY(:$ W7H]R=.
M5LUS4=L]"83\/^U=:3R4[?<?2[(VME!DRIKLLE1D4AE)LE5B8I(M6U+6C+D1
M(H;PH$A#I<6:;?2$F1A#*2E$1IFM>&R944VW9O&;>=[_7__?/"_.R_NZ/M=R
MSOF>^YSK>W %7KR@B5T6@6 /F.\1>P#67D<LF<QY25D_K.>LM(Z4(N^4@DQ-
M6WMN?@WK,N<IM7,21=6AZ..LH0$A=/)A;B9K-A E WNIF=$=<&7_!0Y%]1W;
MWE6<='';W0XENSNZ]MAT*8B8EX!*9#D3IST$LGXL;M\]#?X3AR!F TX9E(V
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
MB2OW#PSO(GKYKS#&V_%H9B2-L>*QHNZHQE88#W1)N=^7LFV0'F;Z71\KOF[
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
M$[QZ!CL/MJJ"6E?0*@O6VH*UNJ#6=Q(#SMNM<]W>7V#@=^0=_ .@];BR[0^
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
MDA-R/:95.Z9U1,NQ?%+E9DP?FS%E]9AN34A :C5=I8L: /FS;DJ7_8WGN!P
MI1U7YA#M]\S,0+*R]9F^4_97SC*R>)]7R[*>*.TUYGG(HU02*B$+$JZ66#^
M.$HY]",/^QBQ%'&CU=6JUZDMG5KH]LC@5T&J52EZ1&Z8X6UFYSM'<>"U;@M
M9?"O109;,L_&2:-@ YRKE E&?8Z;'L$&AH-4"%8O]R.G.J&"5%/[)N<-5>JP
MW:/]?5$]5,?_]*9X(%D^CS&)$^H%D""]0XA% BGR"!0R("%)?#_U(AL.<RG<
MY*CNV-P$?S3"6EZM<CJ(9L3X4D,S-'_V&Q5K>AP"/D<LZE2T4<EV"%#W.7F0
M/OI>*7M4FYNLV0L& >*1H"E,/1%#A+T44H(BJ$_%1>017PJK Z?MQJ=&G=NR
M:3/G<?>X:;9[WF1[,VP+5#,J[ O5P%2V+9;+"UB'RCJ[4;75],A7I Z5.KSS
M=.29'A[9]^N ]#>KYFY4N^XB04/,< (Q]R5$0F>;BI,84I&$D> R)JE1CJFS
MO4QM*F_D!)V@EC;0>5 -G)XNH!IX*@^-DH5;T05:(_D(>Z%FY^J[A,99O]W)
ME\=SPEV2?\>C=O'A?F9,?<;UOJI6@JMVE375EH6K+W35?]Q/RC[' 4]QDG"8
M1&$ $:$$DA2',)4)2U 2!AZWVF?:BS Y'E7"URGYE#G$FB/=I@S**E<CL5,2
MI3:2JNYJJ)UUU&.L)(T#2A()61*H92TA A(62RAYJ*O>X#CDS"YD8:#1&C6,
MX:U=59HK\#>S88>= 0,OC[64\$(Q&=H6DX%':LG,NF(RLW4UF0ID>7L(Z,YX
M[H^R(Q.[AP"C&N+] =HWUZ]HZ;H$+^M451\R0K-%?>U+YTDC0B8)DZ$VZA4/
MXC2%&*<,8L*I>C7TU'IF<^'W0G]6"]0(%W;7F43VDJJI_U&?1I,9O5\.EU.
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
M9B,L:*7MF1G[+,YFW.T*O8'IMS]P]D']!HBXBL\_U]6XH?8&2A]$S9N\TX]
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
M^G_S=S6PJ_N%OI3I>\,;8, 6,J"&!BP5-AM?^1J>(Z$K-41 8[3E]YF WWR
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
M9+['($(D@E0(#WJ(2(]$,9/,J#I:7P&FQH);\K>QB#L:=->7O]=*_ #^T'J
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
ME$J(,2$0L50$(@BP"(4-#1SM96H<T(K7EE+[V8X-CN-H1@57HS,P#W35J3J
MABCM<!8#1Q/_>!^CSOJS:NY/^?,/]YOOO^?EVKNDR*0M7UYMV$7D9%$'[^:\
MCG@1U;+UD\YCM0<1))"0I91#%$5J&Q(( K'Z)_9#)G!DE(S%@2Q3XXYVJ=0W
M21\[J6NW<M;*W15TM&.5:T;+C'M&&H.!&6I;B_I6::?';/NJZ<>=D>FTN7B
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
M GG=H$]Y)=M\>W)^]_G;:KW]HM;?;=_=U?+._OAN+T4S3WC*&4T2F&7:\)9
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
MY#)^7%;55"*)*.$:YBA+S+P(2<A%B<Q/F&:,L:Q(,Y^Z%GMW]R*S 8I7&./
MK+;.<TVS!QF625H(P6 B$(-8DAQ21!.8R83DK,B08%[ED,(A&X#_XT#FN 8,
M!:)G;K88M.G8/UG3_@KNUNO5C+^LZQVO]1)\9JLHDA 7D8BU*-R[][ KPE-N
M'2T'3W[IIEJW!\?);:!:HM(\R7,H,)80%U1 7I9F0"<2820(080&E+H]U=;H
M!O5R 84]\+&%'1Y62K4'KT'KPDL8NXW[2,CUS )=?=N#<)0>%HD.>,2M:WNR
MI=<H:WO)Y3-5;2]>$EB"YX57ZI\O9DR\MS5S[\U=[K[/JFF&DTPDA8 )%SG$
M.B60X:R$(B]MV(?06>85]7&FG;&QQ=9,4-L)K*'@#VNJ;S&=,\"ZT40$N'JF
MB""D_,OB7,8A5A6<,ZT,6_3FLJM'-6ZN?#TT*5<KLSRSYU,-R5@1F/9OMCSK
MHE*[T1-W"]D=8]44-644E4F6II GF:4-8GXBA5DTE(2SLDBPUHG7UO-M]HR-
M7MXL%R^5%1@Q,Y*G6579,[Q)K3VRK-^X8L<7WQ3=VSK.<6][N.[H>Q>\M;K9
M!6^#;6L!JNZ#UI_)?E"?[:MMM$#M5<P4W"CP1DO&O<V:@=-RHT!WG* ;Y[8!
MJ;K_P5;R3[/6-O?\NM1K^V.[TL@E362*,BBQTA!C12%1"8$ET4B7/.<X1<X9
MN&>;&1MW6IQ?;#9]9W%=<Z:SV7-!=P7ARVP8#[>>26X I#Q24:,@-E"&Z08Y
MR_=5:VVL5-&K0%S, #U_]7")G5<]V,O7O/[M&S5(]_5.WS[:P.X/BR/N/E8-
MFV8)1YJI$J9"*X@SF9IE;EE"EC-6)EKIE'EMC-UNTMAHMZM-;L-C;42LZJ9%
M*S7O_OYMHZC'.C<"A4[#>])M CML__1,[^[*SHU_MJM.S'M/"2).VKHO/2BO
MWHQ\;('6<(->1\?U9@#/RKW>?N<(.HN?S3->[Y1IC2BSY[,*9RDTK$P@9RR'
M!3*_%T61XS+S*P!VHI6QT>V^L)VU,FCW\32B;AQY,TX]TYX_1+?I_QU"T(<
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
M@<J[;VPVMX6"S)S@*YNKN_E\^2<SGIG?FUPZ.WNPI<8:L89I07!.L"Z@$(F
MV+S@(<US!5.%%,\$PA0KOW7,+>:,C9>,9; U#<RVBG^&F3I'@)F$ =%DD(:M
M=6[J/M=USU"=TOL:B*]WBN-.P,87:/H!6F_,W_;ZILWNM2XU]1X;IV*NB6*
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
M[A^2C?N%H=5"M#+WD??L>R,28GYX:WZ?-2&/>KFJ$["^J$J9>S].DYP)A(2
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
M9A6AK) IS*D-]$FPK0678TARA2AA)4^1]!2X<6MY;!2TNX/4Q"CO)S3;[8#
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
ME]5K6GW5=OSW4C/^JZ??*]-59;>7T1[VFC* S/0OX)NY5 G-#3]QE#.(<EQ
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
M104'L@(CK'UV8@^N_?3B#ZW A#(,**<$Q>LX#,I0['GL:"F*UU4[S%&TN'J
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
MU]D">_W!'H#GO39:&"[TW !_=%AX/&\=>?9\E=482>IQ*W2,.Q4GQ3Y&'G[
M.8F1CBZ?C+M=/]^XV7_7)'JW>;L46@#]=LE_2KJNYE+*.,N20CLLIN\(-WU'
M$F8*$;%,<EHHBJQ.HMV&G=JJTPH.^*'DP"P[IKJ8U":B9IZ-$1\\&?D=-L7M
MI\+B_" (P($7@0[;9T(#([6F;Z#E!O>:U6ML_QD,6X=SB" 8CW0\X?H>^^K)
MZ8Q9[X&&_=/&.^=PUO#9\8?[W;?%,Z[4NW)9;N0'O3B)]_JU6SZ4IH9,W8OS
MW7:S7<O#Q+DVPK(.B]JW?,P5SB(2)Y"I@D.$8@D+*C/MX$0*LSSC><J'!$#Z
M$&YJ"\C;:E,^UJFQAZ+O(H@_;[GI'6/VO=^5E8F4<:"Z()-KY[*\U)0%7I(.
MXS0;Q6"M&=BK!AK=9J#1[ORT-D&=8=J&AH#><T"H%]%>)(+4)ZB70DZ]CN'Y
MO*++QJ_F*N5(,,IAQ.-(.P&$01JS'$8157%>% 5'A9=3B]V04Z/NG6"@7((F
MS=73WOD>Y1MWT =A][+[Z&^N%NWPMYM^ D_H/?7]@-/863\!P'I__?3.84SS
MF]Q\,NZ-(;BUI'.121SG"8-QAA1$A38;62(P+$B2Y9PKJ8136=*CYT^-0\S>
M9"<?, *Z,<@Q>G9T<0,F@;G!'@YG$KB@M*<O_OCIHW[>%U0[_I8O739R41-#
M(9NG]TO3H:H^FVGR\[[299M\_6ZU5E+;/]KV^5BOJG.&$HIS$4,B"TT*7*20
M,B0A1CEGB>19J@5S[SXWH@I6W]CX#>UV<II*2_+'MW+=T^3VQ5\#2]=S8K/Z
MERFQT>@/#@!HTY<W&H)] 8[].Z/-WH_]9N]X!3B&3]Y+E^88(/E?HVC'\"GQ
M5L[C!A%N"!KY;;5<=77]FQ.^KMJR2@5AB6FJQ 6!)AL<DKR(8)9G@F4*YREC
MSK$>%X>;FK';L$F;H/E3VT'IYP&1&9<!=@BH\ +;*'$0AY+NPB#>7H-O6*#"
M551\QA=<'FS\L("KBI\]S;]^US >>=64,?O\5<J-R8.L^>Y'6<UCG(@HXP+*
M)!6:0:1F$!9S&.<2HXSQ+,FH"X-<&FAJW-'*"6I!02<I^,/(ZEA4XB*V=N3A
M [' M#$,+&?"N(:$)ZJX.,RH)'%-V6-ZN'K]@.B<7\ME^;A]O'N07U:OY-M%
M61\,?%F]D:I<&N-H?TIL-NSFD@HI$IQ#&A,.D8P32"(>PUA%'.<Q9QQ9918,
M&7QJ!-**#VC3Q(%)(%L5ZE+1C1+/XA_J0'F'H!+7V>FGF]"8!Z:@#FXM.OBR
M J\DZ*0W?VWE?Q;:4Q\'!(3;(9(G(.PCQ?,,?-M]A?4,!+ WN,?UF>.%^ S4
M]EF@S]!G#%A%M)VZ-MWFWLCFS_?+0Z^ZM5_?;/7@G^3W4GO4NQB5UEO>KNN4
MNFI.>![E>5I )91>7_2R IE>5B#G:<13EM XRZW7%V]B36WEZ10S^V7\<&NN
MZR'<MBM8-VH!N0L)4CO%ZJ1HEPA'?Y-LL4R]R-0%7L!VL_93I]7/VO=^OK?:
MA?-HU<RJUBH']C%=>_7JG.B7F4"'A>]%)G*D)7$_H6(WH3=_D;X63._ ]RZE
M_D8;;Y'UCM"SY=?_TV_8/]9KOERO+VYV5Q]*RLI%N7EZO5V;Q(\Y$@524N40
M$T4A2D@!&2T03)ABA*=QD;GU#QLDQ=26W4Y^\*TY$*CTY]PTH=%?]N>M=L^9
M9O-?9N##1OP"*/_7MJSJ9G\#-J2=9\QAGSKD/(RR?;V;B$OGDI6>@TZ)&6C5
M\+RO/11%G]O=SC*,OPL^%*:SF^.#'S:,.^OB'5NNJ;A</M3%/.K/_<[4&ZRS
MZ4QIZ,6JTE2]#V<O(LPCDL0PI0A!1+0S0VC,8$XD1TFFF+[ A3J'"#$UYGRF
M0]OXU#'E8-!<V)%B:(0#<^)S<)O"1\VRM-< [%4 ?P1)$K@%1$^4.$B$41GQ
M%I"."?&F9SEN\M1LRI_FK__SW9SC7!4)Y9 1HOE-F2 Z40AS7DC2#*6I)'9'
M  </G1I???ZSW/Q;KO7OQ R\T^L+MW6T#Y&ZLL\Q4/_ ;.*BNKU'>D;7,Q]]
M)?DO#ZOO_]%=WGSTW=_V'_RSQXWC,)Y18.?NG?NWFWO!7DKM-\4JNM3]>90A
M+@C)8)X6ILUS@B!)F8!48$IQ'/-,.J7,.(X_M<_VL"_HJO84^+."'YH-]Q7<
M-_3'X"ZN5I-C9WP$A#PP4QRB;5%>95\T)4A?51?P_/=-M1K]I?JBND#3T_?4
MZ3$#^:_.2.RV-"*:HSB*%&0B$A!E608+%3$H$Y4C&B4DY<*EN-ZSISMQUPC5
M]+Z8,4"SEFP K45UY*=GX%FRSU!(0G-+F_+L?>OFK,*^^.#9L\?]VL^I=?(M
MG[UHV)=ZT$7A(RV%J<V8%(30/"J@0MH$02;EKL@YA6D1LY1%::IBIXV/TR&F
M9F^\WW6& =^TA.ZU1<^@:/?=WH9-^(/.7>L58,3S7,ORLO*>/N0S XSZ-5]6
M\/B3[KG2?ZVN=_H-:6H8L0QA08H")AC'$*4*018Q!*,D3E'$TUQ29+,R.XTZ
MM17;JL*1TL/Y+M2UGX<K.PRAT W,'U9ENHS@OJMT[8'U5Z1K$,!3JM&U?X-'
M*M%U@M@M%;KV#YM,@:X3_5SJ<YW>[,;S0I;SM\M-N7GZ_$@7BU?;JES*JII3
MQ*5,(PSC&!40"<$A4SB%,>*,Q 7)<V55?/'"\Z=FN34B@EI&T EI1R27$.SG
M8@^X!&9=-TBLO_@KBO?L NL[&V--_["WT2X];Y3/^XHRW8=\[;)A+I=FAD?3
MRV[%_^^;\GLI-#]7'^6ZSE-](_E"_R'F2,2,\)A!0K11AJ(80Y:F%!8D)FF<
M%SFFQ,4)LQET:A]WW>Q%M-("T4II"BJ9_6"M#JB,^&ZNFA7Z=LZ;;TS#FV,&
MLUI>4TVIE;ANJMED_^O?MF+[<_)<0/+D]ED-.:HCZ +"L6OH=.\P1NJI*F>V
M,FB69BAA&'*D?4,D"8$TD1Q2GHLLPX2(.'79O^T?;FKNH3GO>$W7ZR<3E?%W
MNM@Z$LX5<.VHQA]D@4GF6NU+KQM(=JAX8I4K@XW*)W:*'S.)Y5U#-IRVU6;U
M*-=QVZ.34$J$*A#DDN<0*95#(DD!8\XSD2K$L+1J>WCNX9.S4EKQ0#RDP>DQ
M<C8[0</Q"&UA>(7"9>]F."1C;='LH/&U^7)>Y?X]EJ-[1MQ*.2_M\QV3"]<,
MK$)7/BQ+57)3G9+SU=9TB7SXN%J4O)35/K*4*L09BBF,6:Q,@H2"I"ARJ)$C
M4:QHP2.K1$6W8:?&89^WCX]T_62V"0\4 'L-0*>"8PTXNTFPLX'\0QN8#J]
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
MRALX<2^=L><J]E\CFV_@9'C+]!LZ_M LP&ZIW:W/]VK_R[NJDIMYFH@8,UG
MA& %FZX.5& H,(^5PBF-F-/VN<V@4UMT#FSA6K[90:3&##2U;>I_<,WRL\#?
M;MWPC6I@SC\%]/.6_9=^U0U;_THK$T?QF]S4N2[/BE^WNU7W2O6A/2"5SQX^
M;YE[%D..G*AG#\)I7I[#O0'2\-J0BJ?:)]A7PXM33C'-%<SKGG=*&]Q%HF+(
M"EFH),68"Z>MH0$R3(W+#I,L%D9^\*W-+O*8I'=A.NRX+##(@:G-)EFO4Z+=
M2PG31>\&&,?(V[L@P71R]_HA<LK?N_(H-SX4LIR_76[TX^Z$T&]NU?[QH5S*
M>"Y2A2A3"*;*%+B.$PPI0]Q4(%0HC1GED57)P=Y1IL9IC:"@%7'6_0",L.!^
M:1E-VP]L/W=Y@RLP.PU&RII^K) X0S"5Y+\\K+[_A[Z_X1;]PYY2^I\Z"FE8
M*=;1@MW%;A]^M=[,VS:?]^NVB4<=?U/0%.>1%+# N82($PD93A&41$:419BD
M=@=@EP:8VN?>=:4UVSQ= R27D*:+0/9_XS[@"?QY#T#&^L.^IGZ?T:#O/3 8
M]-_V7_;%QX[R45]3JON>KUXW-!*IVJ[-(8AIM?-=NTM2?\UYQ$629# S64\H
M2F-(XE3!@D2\2".!F'(JIWYFC*E]T#L1P5Y&U["@4R!MPWUN@B=X&(\#,@."
M<B[J[BW8YG2$D8-H+JIX&AQS^=)AG_<7^N/U6HIR\YJNUT]JM39[O$UT0J*8
M2F@>PX@4TIP")I#RE,&$1K% *LYSY-3P\/)04_O83<9O(RHXE'58_$@/PG:?
MOQ_< K/ 4,B<">$Z&IYXH6>@4>GANL+'+&%QQ\TU>4ZZ&!SMH^6TR%C*(RAH
M2B'"U.QH8OU7H2*<Q3R6&1I8E.?*T%,CD]>K9:6]K&W=_,V4C;FIZ8K#%%@>
MYP<!-O2!_&$9GC,=54)N6KH#YK\0S[6!7ZH2CR4@/:5X;)\PU)GYKC_#U?KI
M7%^B'!5QHDS%V#@S=<0PAS0S1D^,>$X)50RIN3:ZV,K>K[D\G,O7=#AH2$.^
MD7: 9].#JJV+XP>IX+Y.*V;XGDTVB'CS@'J&&MD5NJ[TJ4]D<<\PNGBU+1>B
M7#ZTZ<)<L"0A.8=*"&ZJ2.609'D&11)EA2Q8*IE38M7SQT_-;NFD<TRWOH"=
M'0T,1R3PAV\/AO.'?EYG3Y_VT<-'_9C/*W;\^5ZXRMOZ?L>J.D1[CDB*4YDB
MF*:Y]D@4BB&ED808BR0E!:8H=>JKVS/6U#[E\\M6)ZWCA]V'\>#%?@AR+[+6
M7P?-QTI_#$>XA7XWTDNO\\<J6RSS)[<,J0SW()?\Z=5J*?;%;/8CS*6,*#;G
M&TG"L/8)$@%9CB/(<<($XCCEV&H;PV*LJ9%&(RU@1ER76E_]@/8SA&>8 C-$
MBU MZ4&X[0%?^,/-I>:9-_S&JF%V\*8=%!X#8B>TMQID5M#TUQ3K?\2(-<*L
M='E>\\ONEH'ITZNU+!^6K^N&%ORI2XVKXVK/O=$ID@HGBL$,XQ0B)A$D45+
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
M:V;PA&;6:4>X+W6B6@3B0V%+.2X3**IY[5-J+T'#5D#4AT\]Z3< I8^P1'E
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
MA-"!Q&&L5D\XNK%?+ZFV!JW;07,Q^Y_O^;)S/H>:]ZF#!^T-@L-K])L!O?4
MV9.8M &3$T3?_KS/55+C5[]<5<=>-QN=3=<RO=IX;12L,E9QD@5/N"\\+_O"
M$>H45=R);+Q^"CN'+=7*Z+M.ZKZ7,JHKW09: O^V0&[>+I;C"PPN%R.1'$0,
M$TE<E12F,@891"+,>B61#QJJ-X"Y3\&P+7\K0Z:"D!N R&M$.4HCK7M+;,$=
MP%)A=" LTM+43P@2#*/E2H9EJ:.DLG;]XCYZ#H*/^,'@4TT!#8!IUU!V?SV&
M=)HV9K0_,*Q.R4P3*!)L>;(?F2.!4H7[)R0;N->JNFDZFMB#8"A_,!B^C.I:
MP.C-.,FS_&Z,\7@<^\E&CXDU=Z/$>4Q !>%< 9$^2^) *I(C@/1*&*MK7^ ?
M1-A!V%,_&O:JJZ0!G.T>PK>]>:*4GEJ=2=(>Q>;0MON,#F7@SJJ(06ZNWMCX
M(,(.PIG^P7!67R4-X.QN(N2#8$5I=!$<+6,<?6FWBB;:)$Y4"B+1R)W.M:_[
M'B7F(#R9'PQ/=43? (;P>$]P\T3M)NOV$2+@'@D3N#; W#$M#,:]N!$X;HP@
M21#9DFR4L"[FI&7M4KZ#"#L(6_8'PU9]E32 L]LADMO[17O*0)?[;)8->HZE
M.:+D&.SXX,K\2&--[<<MC]%R$)K<#X:F*H)O $"/COW;YBLQ3Z4-B1B?<6-D
MS0FZB)I89Z,5.='D:\>3A])V6-Z4_F (ZT4S#2#N=(K?FOK);POX-,O+/U#&
MU[;7!">I1F-K%1[O,KM<7$0@PD7A 3>1X?5'IS]"S&&8^E&2\75EWP"(UA/B
MUH/A'NR',IO4( -61TJD2))8F3(Q6;/L2I],6_MR:@\YAP'I1TO1UY)_ U#:
M,_7GYJ^N]XADUE)E;:D6C,B8%,1!*"P&9I/D($/MPJN#B3L,9C]:*K\?W30
MNFUNWHVGXR6\'W^#=!.(1"\R<X$(FU4I-HO$>L^(LBK1,A&!5G]"^B11AX'L
M1TO4U]5% ^#Z5%Y!^WE"#S)=QN7O?EY:YU_=,(."$6 3P?@$W<4R.#5$[HFG
MB3(K!5KOVDFLO00=!JH?+0-?3P<- &K/>)7MPS]+"3R7*@Y61JM(QDD(#$68
M?)+":&-$]?3[P=0=!K4?+@G?CW8:P-U=S_H'G&ANLF!*$\V8())&29PRA@0E
M06@46W+5NW8^2LUAN/K1DO&5I-\ CAXVVG]XO1"Y#H81K40H?<LYNH^L3%80
M+EL+91Q,93@]2=1AJ/K1TO!U==$$N!: !'QY@XQ-9JL,W<H,7WR]Q$7NIUDV
MDW;21U"")"<<BM!J8H.(A%JN5#8J"5;[ZN<H0@\#X8^6O>]?9PT \R1]@_ER
MO"C/ATNCWVUVK(HB>RF)I0Q#9L =YRE*,<5,@Y,N^%@[PGR"I,.J67^T1'Y-
M/30 J[M^T9L=7\^^7C\V.9U&%#4Z#>7>XJ;2B'MPB6I/@ +ZG65HFS7!E*:O
M6H?H'%0?IG4$F8?![T?+^?>MKP8@>=O%\\'60G^!EB>:(I:JD0B>N%3B;!&X
M=Q*=6%O_1FDW+8>!ZT>[!Z@B^080M-W'<9L=E;25U N"@D*?U*F$1S]Z HY)
M TDJ;6AM(#U!TF%X^M$2_C7UT "LBL6=PY?2L;S,W2M[9<W1@X :B?<& C$
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
M!""46CPEK>'$ZZ@(1/R?I+ATH7H0]@@M]0S8=577HI1UO44!SJ=^<E-YM3K
M9]/S56^1]9'^ZNI.'7YR,@?_X$F_BEIA5(-BT8%(KCQQWC%2ZN[QSW70LK\G
M[[6Y&=845D'BXZ9P4-6W9R_O#3=]C>?!>1>/;L_7.K^^.(S.:N\O-I9;W;2M
M[C3N'@3=76, PBXG19QT@ &G1H_>1$_ ID231PC(V@G5@XFK:3!W+KEU>0+
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
MW_L$2?V;HC9H:JF9#H#VP#/@+::<8$E)D2!Y32ZA2PZ<#PJLS'39,VFT;/W
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
MP+&UKCH X$[M@:5DHQB/@,I%4$:3]^/ILN'"&<L*<AEL8_PUFUXP6KGO]"G
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
M\-^CRNNBA ]XM@'(^O/\Z_/OESJ\-@#WE3;<_+ /\_5_+@L9.(K 2F(@1:;
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
MFT/U85K&'6!Q+H!MH,>Q87MW]]7;V0,5RV\N\</\/7Z=DK@?D<]R@JBS2*%
MXD@2#SJ"5XZ$@%S)7$CX:K=1S\U(&G=,QI@@'D>KYYSC;XUZ?;&Q?+N-S/\#
MIQ\_D5!>?<4%&??Z+]]49Q"FB^W\"(VUT@\!DW1U1[  BMPI9L\V<<UR%*&;
M:X##6!QW)LBYWA2< $YCGQR;6\$=A+-\3#H__H6+5+W/V]EJ,9TMIVDC!2&R
MU=)FX%G3^6E4 *_I)'6<^<14H'-TMRGP@Y$X[HB3,4^6/K3>!?:/\ O_O@XD
M;^Q>BQB#]P$"*[7$1'-P5GE(Q0ACE9#*[G8[TIBPD8>KC [TD53<02!U70Z%
MBZ_3;6'*/6E0\K-)B=:,+S_,5^'B]M_7-JW->*2;W:6W[CJ7DZA9,<%J*-PB
M*)<#1%5?>H-@-EN&E#8-50\W)&,C#XL9.6KJ#SLOV: VL27E;=MOU9_C$X'*
MR,@*>%$W.T2GP$M&[B84FPQ&[7SKQ_O3<CCR )R7:F+'HZD#6WMUL?X9S _+
M97O_,?%,>RUE@6AY I6X@E"2!6N=-Y;9I)I7Q.Y&V<A3=D;&]@#:.QB3E*G'
M^2E/@ _AKQ]PAF6Z^HGT\A#?@7$3<D8H4I M%B?!D0T"QZ@X5Z5$F<;P[,]2
M/O)HGW/PV&VU/W:6O!/+=X^>]6B'U^'+E ZKF]'BDQB8B-D5R#:3Z'6I-V,E
M #/6&8&"%++;,-N&1(T\;&C45[*15-M!<'&PV#=KK=_.EJO%Y6:FT^H3+CY\
M"K,#;XOI_$O9:PXFK6_,?%W<1JZ!:69M<0%9;+XSO!?F=[.]E_9"W9T:]L+@
MBS;>S7W?E> FBMA/.3/ S#0H:3)X:RSH&'(TE$4-L#?B1+SM9GHO[5V]:P1U
M:UD3'9.7K"A@K XL9"Q 0%VW51NN?"V3N?NR,9 =[(;:O]=#]E[:.;-)DG]<
M?OX<%M_FMXNK7Z75]"L9X4 #)7?XR"'G2N[+<1_C);W5B>>Z@24%!(68(40I
MH/"@N8Q&NMAZ2?/(XR6/?%B\M=CM_?SBXJ?YHO[E)*LZ=TSH.J7 US)N#M&G
M HYGYE-V+BO12\#Q)"=G/7AR'S2W+C9J (QNXXB#I+!IA9@43N=C;760UM?1
M7<IOYG>PI+W,T5HI6E^8-F?B3!M8&R)S.&,Y "8'V\F7S0:?55BLNK"6[]/]
MB41TPEH.F=6=0E8("#(H" ZY*%KFS+O)6A_DX$S[6ONUDR, TL-A4B/AM\OE
MY4,;M&Y7DUP7)4Y\\8A2U"R+$BR%)=15#!("T8?92!2Y>47WWE2>:?/L@# ?
M5M'[0]EOH#S#CS5L[,+7W[1V+%_-\DT7\HUU6V6"%BQ#*CF2=6<&WOL((B4>
M$!EEP3N-=SVA^W^6J3/M!.[W1&@+HQ=A6?>#R119UK5](VA7%:0,!+0!F.#D
M5KB/5IY\*ND@.4=_K]O]6LYQ,#DRY_AQUIVMW'E=O#J:WRVF":O.RE9G,H<D
M+$696J6Z]*CN_E:F0'8::P>B#*6W)KO]N1PW<WD9UUY# *J'+.8T$IKD[")%
MQ05\<@H4JVL.630@I)>)L1B,;+[D^32LO9CKLT$0/HY![@6W\[EP>W2VY2X%
M-M\+R ;-5&()#&.V*C& $UY!I@!:"8_.R9.G8^W8>S%7=5W8Y$BP.X?3\3G1
M7'&_FW2T2,;6X<=%,@IU/ DFEEHWP0)7UJC X\D/R:8<OIB[Q;.PR^' =PZF
M>>Q5TY/"2BEB]LH#=U*27IVE^$)+$(JR;N]9*-C;8]91#+^8F\XN#+<;:+X
M.]XU(RC:JBR,!U,T903)R=K25\!*S7UPUN7RDA/0<[A+/0?;' )N+^3V=2N
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
M;3^"GD%$WQ^T-@5,X:]?PZI^QI8G1UX6A<Z4'F*=?,4Y"= J0+1>1F,""_E
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
M5-8H4??C8*&01U,.[671D*P(45J=<L,Q\4]1,N[*M]8(/+URSN2$WVWEXI4
MC'399!7I-' 4XE@6P,>D*3XW+&KNO ]C[(;9BXEQ%\.-&KD.INOQO>^>1\RM
M$>@3;HN52-&ZMS5N5Y[R3>$E,*6XI3]PF?0XP< M*L?=)#=R0'"HMLX9EM^E
MF1-T=<6SD5!,73>:+-FAQ0@,*:UD06B3QG"\3Y \[@:Y?@![N![/"[WKO617
M9T= ':)5&DKTI=9O)XK<?7T#3#G8X*U@K<=H[$OCN$ODQL3GP9HZ+T!^>'#1
M2599**42<,8#**\51(X>3#)1IB*S2&.LB'^0V)'7R/7C0P]1WMA=ZSN]?USF
MZ>J&S^O(.Q?TVINZ:L61)?(,/K"ZZ)Z"<&>]3^7.F/TC[@ >IF'D-7&CI?\-
M-')>7G*?Q;<F2\6CSY"]4"0%M. X?9FTL,8&K9"UGD_4F(61U\V-Z5&'4O1Y
MP?WWU2=<O,K_=;E<;=))*;6/AC,HA4=0L0APQB<((BI&ATIPS7N2#Z%SY#5U
M8P+W*)5U>PO[4%'FQ!MN2S8,T DZ9E+,X'S(()PRQ695@YR3@/$AZD9>>G=:
M"!ZMGJX+$C=GP7(Z(]/:KLSX?F[+CW^E"XJ$9A^OYF*'6;X>E]UH;$T3&AK.
MLVDODQ/4 !I1?"ZJ@-8U:9<4F+I((2IB1H)C%C*=40W@'<=?'IG@?JV)S?;F
MY;O-YD#ZQH?YCW^%S]/9^L??X^IR,5N^GU]<_+29<C7).F QT5'&J.I( 2;!
M%>FA1!:M$2PYW3K['YJG?JL']\'F7:_<%1(Z""(>X7_"792A#IE'KBD6TM;6
M%4<>$IU\DB)U6TQK0#]"RK@X[ LONRVBV$MY!V.0PI?IO-:]+U9#(O%J0U<=
M5WIY46?2_T1*>D>?O7BWIN##K;VN$V506<-#W1Y,TO2N@$\L440??6%84OM)
MQRWH'K?H]1PQ/APL^KEW>'S/S!ZL<S19KX?-Q%1G;XH$WC(&TF89M)$LFM:%
MM"WH'K>0]APM8CA8]!NF/,SS=BK.0WZ@..\518Y.4!:O!'*(RM;5H9%95,+$
M.*HQ/$KYN&6[+\<<VD"C7X-X^%B\]>+Y']/5)_KYJJ3+U:?Y8CU+>6*-5=$9
M#B;4W2NF7D )*R%(:[(1)LAXHOW;AS$P;DWQ.9K'"8#2?2#U'O-E6EO_=T+X
M)7Q9XN_EU9<O%],4X@5NF@CI6[],/T]7VSO;A,2N++:6K4KR%\Y!=+E T<*G
M*'1]+3B-R1S#QK@UR^=H."<#S;'F,^CUD,L8K,\"I(X<E)09 A<6*)LJ25J7
MN>OI>FBP^N5S1/!>RCOR>NC'61[ZR>F[=0'WBA"&6(7PZ(<,M01A-ZY.\"HD
M5>$L) X\NDC^*T1P&A4$I9S6R()K7BT^X*O0/;'^O)@O;R886<NL3@9!IDAY
M0/8,0E"<.)8QNR2$UH,O)?V.HGY?9/;!Q;/;J@[7PMBEF?=8N=E&L_YZ\Q0\
M_6YO$GEXC*E( TDK"\IA@ABT PJH.0^"1R[X<Z[JX$_O8PYH"]4_N:^JM1XZ
MN !X:,G;U?>V\ZYN-^.]FN6K\__A;KW7\^5JXA@R50P#%;RMTU $>!DIVM!>
MV$AJ\,V+V(?@HX\IH@U1W8W2>P3^X\NJW]"!16$4>046F/,Z@:M//\HZ"TXZ
M"<5ZY4PLEC4OQCR S#Y&C9X"MHU5UB,JW\Z^DM#GBV^3)&)*5ACPGM?%=\6!
M#\288(:7'*2T=JBIHO>IZ6.@Z"DP=I@">H32SDY^7=$\49EX,A2^9%MWW!CM
M@>RH@*5PQJ*4+LM^#O$UR>->WW=Y7N^ORK&3G]_FL[1Y77O@NH(H2FL6)U8'
M:87*$'459YUCYM&0.$7P,C%G'<L[I3N[?=ZX%]Q#)3@#R+I'Q_=XF'#5N.DL
M1H.^@(NU<3,[ 2%S^C(587QP2JO6:XCVIW+<*^H^XKI#%#:V1[O'WNOP9;H*
M%]/_L[WMO]J@3G[[#7[%B_F7^G2Z=>S+B7(N&^4ID\IU3'E4$:+3%GS6)5AK
MH@EN)U=W)"'C3LPXV27/@-KI#HGK\.#F%)@@<RI9QH'%FL,+62?BDY4E3DE\
MK>ER:;?.[N<^:=SI%B?#TC'R[0XLM93CWRX7TV6>KE^NP\5ON*I>>BV]B43A
MK9(*=):<HH2Z)8[R:P@R>VDQZVC\8=AY^H-'GD)Q,BPU%'\'RRQV:?/6(A@=
M*&W!8A'(QSH(&NM^CI D?<N'U'H*:K,>_7-Z[!A*)_U4;MWC[)=IB-.+=3$:
M6=$DRKI')DC@TGE000<ZQ.MZ5949<]$YCH,C[7N21IX$<4J4':&+OAS9+49N
MUK**$) K ZC(&:N("J(,":*J8]<E9G+-PR'K 8KZ'8S?Z/7_6"UT%'?=8H6^
M>GVY6E(2\F_SN'R55C]?S&.=[W_U(OW+_!_T,QOY3J(ULL@H(?I"EA.M!\<=
MJ^DQMYP2$Q^>K5MJ14PWM0%' ^.1\.PD6AK_+/V.[6L[?M"%)YF\T;*0+.N,
M?DIZZ'B@G-@ES:TB2];>[@6_)S^NWV4)AWBT@<3<W[R/_\#IQT^$S%=?<1$^
MXKJR8/DZ7*3+B_5OG9<'?V)3LWA((>9Q'WAD469#;AL5:/X8%K5RN!81KS_K
M&K5>NE"R9.!=H. .:]NWEAER*2((Q[V2K6=V/$;+L<'9'9G^=ODYXN+WLI'M
M[^2IZY 4^N ?PG*:)CQ9CC()L&C(7!T3Q+@)D*52*6%(2K=>L[T7@>.>I$WP
M<C=N&TY!!SL\HB3.&^6=#[+W9GIQ65?]W>7Q9H;8) :KM?(*N)*494M#63:&
M7%<U1>^X#$&V'OE^(*GCIA.GPV1CI77P3/J(Z3W&Z"27**VT#)#7SE9E%46K
MT4(IP?(8T?#8NHY]3Q+'#01/Z1^;*.E,0L)7.4\W]]UO9V6^^+S^_8VCP*<^
M8XC ;V>>AH[ULD&AK3-@?*JE':@AI%R7JT4K*!MF*3<?A#]0K/='^H3Y\J)V
M3\Y6TUPM9/H5_\!TN6DZWC3/85[W[\\_?[E<;1]X[Q+TH?9=3EA1F(KWY,WK
MS4 0 9R/"=!YJ8./.34O?VO+0:?1XCZ(N^L-1U1Q!P?VD3S_\.WA7_#JK^ER
M@D(A)\F#2:GNKZ6#*B9-44SRRCDG@\?6.=^ [(P+_3%1.N\3,MU:SV_A,[Z9
M?P[3V:1$$36W'H+1$NKU62WD(<?DDE91<69X:X?_'$WCXK@;\.P$Z@,UV0$R
M?Z2P=?X-\8_5//WW[U^J-'_%&N=/O CHM$&PZZ=07A1$E1P4%;W"+)'%YM'9
M8\3TB,5#=7YWQ'83!71QX?0>*<R:IIH;5F:V;$C#JD%9R%$[4,X;<"X&R%8'
M.D$D%M-Z;ON#A(Q[630HAHX7? >>B%SW.AN=I6V>NF7#,0RQ% EUCRPH5H@-
MG3-(4621CCO>?(KW(Z2,>\4S*():"+\##!T9-?PRG>';%7Y>3G0=$9:$AE)[
MZ)7+$@)' 2A-8-+%J)KO\FU%^[A^[N7D'X>!X?R-8#/>::)T4"PC U]B#9(S
MAY@5 J/O<YZ\=;TEY1O">PP5A\9<6^ ? (!FJ&]VF_\'?JSO8F&6?\;YQT7X
M\FF:;EUW-[[7/^+3CKSA;\5GH[O^+3GO\<M\4=L#KF]>2]%.1(&0I32@I"4T
MD6<'@XB9<VZ\5(W=R6.T'.M?7\]G=>_A9O'1^^GROS='E?'1LO7L'5]#I4*)
M6]1>@^'.$&E.N[LM*$=S^# E(U] MD# 78_60.0=',SWN/CAVP\X2Y\^A\5_
MKR^FDLQ9,PK>M;/D].N,1$K8$!SE:I()$E1J/67C.9K&!5,+O3\'I6.4T"6H
MKKC9IH79Y9!4;52V9'PJ4A#A%;.@HY-&>!ZP>47=<S1U!JJC$/ LO(Y01P?P
M^B-<U/G:7W%VB;_A:GLM4 >YQG552?*UJB1X( %Q0.%14+J6DFL]:_U!0GH#
MTC&ZOOO<?+3@N[@3?I72>EKP>TPX_5J]]]7-DJ(4(GD!K%92*O22> H64HY2
M2)V8TLWSRT=H&??&9% 4-1%_!V[H 9_]@?[IVEW[;(T/M2:7D9-6P1GP(BL0
MDN6$0F4O6U=./T%.9V :)& Z2/0]HJ@RLK4R'97UQEDR RDJ/QJBU (B&8DH
MQ!KCK6]\GR"GMX/M0)4_F\8=)O\>H'2Y7,T_X^(>2UO_&JSE6HD$Q5I%[-!_
M?,D:I(V:'';VQ;1NO7V&I,X@=:CJ[T*JH1Y&#9B6B]7DU_!?\\451YM:%>TI
MK!-6 %?<UP<X"<XC>6ZR.<,E+UGLA"/Z];<P1%_=X.?A3Q[WL;/A.=9 L"/Z
MFTI]?>/]O7S'P]9R3#2((A"PI6)U[DJ"6!(#@3H;F452;J<+HV?0\2@!X_B4
M%AJ=MQ;OV)W[5Z2+K>.S+&-FH;:4U]%@MHZK8Y[\H(\,90B:FSL=,X^T0=_Y
MQ>.IO)&>YHV$UHO"^99V@=):ITIM\B':"PG!"<>!D"^]RDJ8NVG0,PKG8V;'
M RO\$*'U$'7>/19O'HP+]T8674F/CM@A)EQVY/U01<\LL7=W!4?[_.67O6I0
M!IO0?8HD^##!=P"AJRZ^S0/=>LO;YL5N.6$D ^58!K<N((LDI2"8 4Q%:^,H
M7+:M*S4?IZ:S=.5 ?<\'$7X',+HGH'>XJ-\('Y%/$G-*Y4*6QEP"E8, 'U,"
MEEC2TKO,7.L5Q4_1T]F57!LH-5- PZSW5-4[5T6&\[)](*E2__$O0O<L7%PG
M!?2O?YG//OXR_8IY,\(F?KOY=>'B55T>.UC-3WL:AZT4&EBF0]<7Q9*SI' -
M*%Q'2O[00N1TN%L*XV2F2-Z5UH\ 0]47W930;C6Q_.DA5;RZIXI-F(-2UT G
M0!)(<6TN&F+D"E!ZKBGH*<JT?E@[CN).ZY7V0=3CO<*#JW#DNZFZ(GB];/L[
M+U"O8ZS/S*,/8"R:^E3-(' 9*)<618@D)+,M;BX?):"7/MSA$3!OK8ZQ,;4Q
MR=LL;/-^):P3TCI +S0H+Q""#@B,2^F<TT'XG7H2G\/48P2,=_G52+'SUE(>
M\Q:L5C8LODW^_&-BDO?29K(/8<E<)$O@N4,PK,04';,^/.5KEIC^Y>/\Z[]N
M?^,&&MLO;I!Q\WDCPJ"-TN9'27!D]_#CY6+^Y:J.A3&DS-EC39;KI0X1[Q3/
MD)E.VDK#@]II,-0S'N'V9XYW(=I6^T?)<M2WTO55[L^4:A"@7G^:SL*6 >WK
M9'!I04@O0#F9P14OP92DZIC;S'&WR</W?_<XSZ$#F'P#T8VO^_5JDQN)U*QS
MRT<*C,="DO ,/?DQ3U%[9 A:EL"U9-S??2]_! */?L0X=]L#(:&-(#NXC]PS
MRKZY@Q/%"".- 33<@5)UF9>5$:*/FCGOK FM>RX.I;67SMZ3930G56X_(-YT
M:,[6UQ!U\<X5JYL.SGI'06S2_]?Y[Q.5;$D^(T09.87_9+&Q6 E1HPM>QZ!2
MZXNO \@<-QD_#7X>!NU@RNRBO/]FO=A&=!,>*!W%=8.?\G4W8GU0KRMZN+"9
MN2!B;EWW>)>&<=WD*%@[2@W]-6__<+DDL2R7K]+_7$Z7ZP;FY1^7@?#W>O[+
M*O\6%O79ZRMN'AJ6A[S>[/L11SZ^',51H[>3*QI>SS]'"OS7-%S?=E,\IV6L
M6^I9(M0H7A=%Y !.ID+X4Q0-MAY ]Q0][=Y0'I+\#]]N?;4)3[)U66>40)$R
M65^2#EPF8Q1%\Q!$P9Q:3SO;E\9QS]!FZ'G\K60 5740U#W U?K>ENL<C,^R
M;AE3H&(=;2-R!N]#3C&&K)K/UWN$E%Y>2H;0_[R],CK%5/WC J]Z*JQ,@KO,
M@$M1-IV#SE-<$8/P#HW39;?7MR/1]1U1?3BPHU2_ YP.U\/8%<57 <F_4$3R
M+U=#*'DP7$D!-D62#J?<Q$4CZCZI4H2(UMU=3O_(?=H#O[P_/!RANWE#07;@
M87Z:SJ8K7"<J-POD-LG%#]\V)=D78;EIO)!2YE3[MYSBMMX^%@C)(7@4=<><
M\Z&TG@:P!WF]W)J=X'0;2FE]X_&&L5O#,!5&3(85D+R0&+62$+S/H&MMI<O.
M6=UZ8<R>)([K_0:#RNZ0/%IO'<#R#7[%B_F7NN(R?9K-+^8?O[VO*U>6MY[5
M2K 2O''D]971)$1KB2<T(DCO?/.]1<^0U"WLCH?#O;6\[70S=FAVJ\UYG7'7
MF\3WN-G>N/PT_7+%4Q#:%RTR6"$H$?<Q0JA5';P4'E,.RMUU>\\T@3WS@>,>
MKJ= TV#B[\![O9UE+'L<!*$$::)08 39B2J);"?4%<)."BDLS\FU?FO:D\1Q
MN]9/&NP-J;S^L?F@?7.=4N1U";&O[;O)DWVCUB"L*$):RK]8ZQ[( \@<]P0>
M%#;[0?1H'78!TW>+>2)+?T]J)$H^T<FP#3QJK<[V7$#'LT@B0J:P@E)^5^J2
M]P#"*%&8H6!:M,Z0=R*L:R@>#X][<&RMJPX ^,!)<_.F7+L()1TK)*BZZ2A'
M :$.TF<E<B_0:K2M>X&>HF?<MO"Q'QH.4TM'$+OU]$>!\')*ZEI_\6$19LL-
M97RB;)$QY@QD."0T7QBXDADH;E*VRC@>6X_!WH>^[NZ<#T3%(W!KKJ(.X/<N
M?%NWR'^8;^_GKYC%Y<^+^7(YX=QE(2B9\R70F>"5 &>]J*53L3;/*\KK&D/N
M.9K&S8L'@UE3570$K9_FBW5H@'E=M_5N@5^G\\O;\IMDGHM/UE N+ZO1"#H,
MC V@369"1Y.2;/V@NCMUXZ:]@\.ML7HZ -[#_KKV'Q._WWGN7Z8A3B^FJV\3
M5"DR&RP4=-594TSJO7*0ZE;WXEBQS:=J'$#FN#'>B0_8=@KK )-O/W\)TT4U
MN-_+W5SLNEKYY_D\_V-Z<3%11>80;89<B"7ZBD.T=5&0*"$8-"SYYBGM/@3N
MA$-]=C@<3DF=(_#FLN"B7A;<YY5+I)2L<$ 6.*A8$H4>J"%R4UM,/(_8^JGM
M&'IWPJ=Y4?ALJL+^JM9_H0"X2OHGBHN/J$Q_Z-<<67W^+&6-*LS7W817Y]\4
MEV^FRW0Q7UXN\+I2V%GK O-((1JORPQ<@,@BG8X*!:_[*WAJ76?^/%5']B&3
M=*N$UYT^817H=\Z_?,+E!+5!*5,$*;,%):,&7T>Z9:<P>F>397:GQ]A'/V+<
MVXS&ZK[3HMQ"JCV<:;.O),KYXMM_+,CQO9G_8S:)W'*K4X;B9 3E= $GA0$C
MO&()<\ZE]9S%^U2,>T,Q$'0:";T#V*Q/S)O#]/6GL/A(X-=&!:^Q .?K8N4L
M:E>V @*]=UR%+'5KZ#Q,R;@W#@/#IX'P.X#0Z_F2@K :7-5RE3]P\76:</G'
M_"+__A47GS#D"45YBDEDP+ &7*J.3,\, :-ES' ?6?.NI^>I&O<&86!H-59*
M!S![.R/AU,7Q[S'-B8=IM11O5 JV0%&UCSE8#B[%NKL[9&-*2DK9YB?</3+&
MO0(8_(@[3NP=(.?!\$[++ J7->6T#I3E GR5#J:,,6A-YW7K$^[@R'JP]'Q@
M[!PM^/Z2[_=(C%RFU>5B.ONX/;"?6'Y]4&:^]V<<F;8?QU.CG/X[(J[*7C&_
M2JOIUS4V;P:FLE(LUG?DJ -Y'R1$UKF$CN4DO(P^8_M).CL2=_QDE@<_J)[F
M5S/=W\VWE20_7DP_UR<"S!.KM>*8.0A3;UT=I:G!,P]2*:9-%5CS@MG#*!U[
M/LL0&+L_D&5P'79PJ![&Y5L*)+ZL"T7F;^CK[2SYB:!3)E/60Q&$]+5%PD,L
M%)FBI[ T('U#M:ZL:$G_V)-@^D5U WWWAO6K+-V@5:E6B&)R$92N67J=7E>T
MBH82*X:\]3/Y0W2,>T$R O8.D7^/NR<>8NKV<H1;?QN^,[=EX]!ROP\=(-8\
M@NN3!Y^:&Z,C9C!I/:Z2W%<0P8/+.O#HA0@XJ-4/&7S>GKSXJ+/?CEETR25$
MBY!L6#<UDO4)YL!DAHP5)"-K77Z[!WGG$F;N@Z:G=C^TU%9WYRVQL69JB8NO
MF]W0]2'%6&DAAWJ@(-,0+,7+4@=C7!9!%37HT7N/I%Y&&S6&PI/G\'%ZZ0!F
M=37T'9%=[7V4W(1:%A)<;483Q(A+%*YR56>K8!'.M+X<?)28CGS9L2J?#R'_
M#H#T^PP_3#_C!UQ\WM9L_H S+-/K$0 ,K10FU=(XG<C/\P"^U+ZR8$*1Y/%=
M:EW$^!Q-X\*JD>KG ^JA UQ=C0&XQ="6D1A-,49)XL$44$F0O )7P&/,@9D8
ML7D1XJ/$C'O[,0R2VDB^ PBM7WB^D\Z6#R>LL2@=6"U#W0-:P%L=P3B4S$D?
MM&Q]Q#U&R[A7& .YHA9R[P _3YS_OUP7\JJ()"HI(=5N/Z5SW2[K"F05"V4V
M.?G<NOUW%[IZF<@V6E!^F(:Z0]WVPL\7FY0-#*PTK)[@ GSVQ$U4Z&W$*..@
MCP3[7+B.$8\?J.U=[EKW$?V9W[5NA1F_U7-A7JJ(3W/?^L0'G^[.=5?N3W[O
MFIP6CCD.K-[Q*UE[W&H')@5C7)52K+"M*[VZO'?-Q:@0LP0?.:>8)'.*3B@&
M)7-,@7,K?1QRZ^X+N7?=!TW'W+ONHZT.CMT?PD6M]/OC$^+JE_K35[.K;7!T
M=F0$JQC)*X4(010-(4G/,G<NY=87KH_1<CXWK7LI_VX;< M-=(JHJ^RJ"):U
MH$3:N5I=6 55F(+B4C+2^H2RM4=_G)J1Q[4TT?8.$#I ]!V Z%5*BTOZU)LZ
MU6TNS3'GP ))AC.R,,TBN$SYNJX5R+)6L-O6C[&/T=(?@ [1]=W^E!:"[P!
MSSUB(+/!VU(W6M:A'MI2^JUM(<?M>91<.R9;-XNV>$_LXNKBF%.NI5XZ@-GC
M-XE6\H1&>K"I/CX8D<D(E25&"@O(T"9L?75QIN^)>ZE\Y_?$?>3? 9">?<>*
M23"C)8-$SI:<,,\0E0I WE=+BAEL-,V[V\_T/7$OU>_[GKB/'CK U>.O6H*C
M%A@2,6+)BSM!@6;V$HI7*2I$77+KB<9G]YYX#)+:2+X#"#WZKJ5SU(%@#]G6
MY1TQ\#JZF4,Q'GWAK&AO6KND,WM//,H5M9![!_CYCH5WE+6L3WVF@L)$60G%
MDAE4* IB[4R.7)!U:)%%:/T8_2 AO8SU/V'8?9 .>@32ULA*%H+;&*#H]=N7
ML>"0#F>>K3,A.VGBH 7:-Z1T%&@?IN3G8'. Q,?>;_-K^$;J8UO?6;C/BD<#
M'(E\E5PARI%$@C8R.H^E+G?"Z$<&)WWW:SO3^R%:FC<1V=C*?H-I3735UY9\
M65(,+'EPB4(N%5!"%+$ 0\<(^J)66NRD\?N_NZ,FP!9J/U)XO9T0CY5*H,S"
M>R9(*J%N4JIK-Q,)*1G%LDLJYM2ZCZ59Z=()-AB,=O]WF(9Z0]V6F??SBXN?
MYHM_A$6>!%/GDR-)R99J1-6!^GJ#H.C\S84$)@:=7G"?I([.JR88> ID1RJD
M4WQ-E$V,L5PHJ:R>F?++FE062C1%]$PRQ]6@0>^6CHZ0=*RB=P#17E(_&#E?
M<#&=YS]68;$:KK0R)T&! IWGSCL!RMD(WC())FLFK5>:Q]9+!PXNK3Q-"#4D
M?@Z1>L.JRB9K++YC:%([('P0$9BI^R@C"Q#J ,-2_;/A46C7NK_I,5HZFH?0
M&$--I+\_COP&1S/\6"._#X,>9.OU09MUIZ_R?UTN5Y7AB606A3)D&$K4^1$N
M@^-(3*J0A=&"<=^ZV6EGXL8-U$]]Y!VOGUXC*%0H4F(:;*CC2>HPFI"3 ^&<
MYI3(".E/$9:/.TKRY!'4/E(_,H+Z<9:'Z"SXXS(N\7\NZ9?\6$=!'S.;Y;%?
M=63U_TX4-JKGO_M9UP77A;%0F,K@,5*\K#DAA]&?4&4I7-(88^N"A<=H.;I:
M__O?N[D%\71..F<4>)8KD+6!:#@=QIF+$HH7"EN_GS]$Q\C%T2VT?Z_<_EAQ
M=W#BW.6!_MGZ-2;:@)(S"QBXI 32"O!!%M!9N<BR5XFU#FP>(:4KX!R@XV=
M<XC ^\3-]EI?NU0\61/$D$DD7"%$"O;!IQRM-)[7^>:#(Z>'=\XFJGX>/@?(
MO3\ ;=]Q,DKC"@5<&NOT11<U..$34%#'BO"856K=>?$@(=T!YQ E/PV= R3>
M'VQN[N&5,A3_!P5HE:YU_P&<MART1N5ULDZVG_KV""TC5\@/?&(=)O(.H/-F
M^G6:*958O@O?JE!>?9Y?SE;O</'')Q+LQ(BZ<4)+P%RO"F0*=> =18*%Y12R
MT**TCGB>IJ@K'W2@UN>#J:!#0-4QPF\P71 K^4WX]NM\MOKT:I;_$\-B@B;:
M4F2NSX2UP#*1*7JM@/%:J.)<<+QU<_0>Y'7EL8:!6BOE=(J[6@^12%%W63-&
M9F8X UVO/2FIC21"2G(UF5,BJ8946@=4>Y W<E'KJ7#70CG][1NY*L5Y^_;?
MP\7E^A>%6?[_+L/%M'RK-3DI5>^^O=4[Z-IQOT\X]C;R"'Z.O*1<+E:3ZP]]
M]="'7E]8"32)JQ# %$;Q.M:8KJ %:X+WT:)49B>#IH^\9<STU8TA[T[-H9[L
M^4^X6?>S'4/%')F#Y.!Y0%#,,G").S!1D7_F,A2[TYB'H]B^0]0X =I 6+GR
M8\.JIH/3\X:YBXOY/VIO^O*FKFMY?4F#4? DA 3K35TNY3T0HP$2.N4EXYA#
MZVOSW2CK%75'P6(^N(ZZ1][VAH>AU$*INC%"U_S<9*"0PX"A[TD*1T,1K?<E
M[4+7N,GH$'C8"W('**<#P/TY2_.+"TRKNH">0E"<?JVF>=4B++)WV?L$6M4A
MHK5%V,EH 7GPP7I7>/.!74]3U#/(#D' ?#!U= "N/P*1_AY7EXM9E=.-T+;L
MV,B,25*"E+Y>.7H)WE!.9>A8\ JSD:;Y.+BG21KWEF-P>+542 ?XNB^OW\N;
M+2D?PE_K!=770W^X*%&DZO,IFU9690@N.9!6D>1,U+KYLMT]R!OWEF-PW VE
MJ!$QN$^T>W-M%"RKMX4(*:FZM=IH"#$R(.LBPT/+)-OI":I1CCKR>]1I,H;A
M-=6!*_QU_A5K.>O;V=/&?+L@TH<LT9H$1'(!Y1VQ**."G!VW(FHFFS\X'$!F
M_\GL@:"9GU:#'8#T:<:V8P G3AIG8XZ L08A-C@(65O*V+AF6AJK) Y^4C]
MV+BIQ^#PV"O9/417W321/<W:IK\I?YAOVSE__.L+SI8X25FCC-F#JZLTE*CS
M;U+B$!**))#"Y.9K(@XB=-P4IB^8MM!E]W[SFLGUE*6KXVF"@8=2K(;BZ1A2
MW$:(R24*F@S//"?DS9/K0^@<-_/I%*Z':[)[M+[!?)G6>[8GQ:0L>$&PL4A0
M07N(6"A:LBD4XSA:V[J<:E?:QFV,ZPN5!VKLV%[-$V#QI@MP.?%<.<4H=!<A
MB%K^J,&[Y"%91\+TUMMX6C#>(F[<OKJ^T'BHSKIWC%<A-7EU(Y,3P$T=B>AT
M@EC([SLR+UFT]#*>]G5OG_3'_#U >(BN3M,!NOV+^I\8EOC__E__/U!+ P04
M    " #D@%!6@J'F4)\'  "AA   &P   &-G;G@M,C R,C$R,S%X97AH:6)I
M=#(Q+FAT;>U=:W/:N +]?G^%EL[=QTPPCT H),T,<=B&&T(8[+3;3W>$);!N
MC>219"CY]2L9TTUX;)N%8L=7R0P)%GH=Z9PCR;*X^.GZWG8_#3K E], #!ZN
M>ET;%(JETL=3NU2Z=J_!C7O7 S6K7 $NAU0021B%0:G4Z1= P9<R;)5*\_G<
MFI]:C$]*[K"DDZJ5 L8$MI!$A<L+?46]8H@N_W7Q4[$(KID733&5P.,82HQ
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
M18$CP8)(;D;968AGKR.&%NJ/+Z?!Y9]02P,$%     @ Y(!05H7/PM5B P
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
M-FR!@FA,7;#8\HQ"NHL"8]P;IS;B5/PR.'4ZX;)T/IT !VF*!828(%3,'87
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
M&>O<K==@DRC*KWH#E5?QUZMN-BX+-^\5(*Q$N>M$$[RQX&LL$*^#!2<!8*M
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
MU]X]6+3J[=RJ;1EN>_=@FX;M?ME\W2QK-9W=8_70!=O%U\V:>MV6:Q>CH\"
M?UYKUM8*.8DB/*AWG?P2[ \/:/J0MQ$A/+^K[4X?RT>8[A[OM3I7":(B_'E<
M$AK_[U2.:2 61*S ;NL=L+E[2F7JNE-6'Z7O_Z9B*2*UGXWU/5V31ZMO%%P/
M<_(5/%P\8^M/.".+!$8&^#R:S4GZ ;E;9O;/B+>?,S0?6/_XK*OW!/46@4R@
MX F+8(WJGN>#AQSP$ T/K'_X;7]*,\8%_,%""F>"%BQ2URD\AF-=VJ&ZG#.<
M,[IN4<6>257]VS\3#%MR;-H0/MW,&*:NASP4?#Z[X'/3"[MCV.[N7_6]MM%J
M=;[QJ_Y]6/_/OO\0]E7YO*JGAV5YMYBKHFW&)004(DI3&JUKWKK 796\==D\
M7XB<%_03]>C.K6O.:(9C1[%D!<;,(O@+[:C"OE).& E8PN2JM$;0*^4H=00H
M*JCL.E)4#%2Y.JRN%+ I6(&@,154I22680^2K52Q7EWWZHN)CX%>X6L"WY!^
MBH9QBXRUGM%J EP5W.@]7?GN"IJ@^R_HQ@WO51K1&<&Z4B$!'@H7<KO*MGNK
MK5>GU6=Y<ZWOT __!5!+ 0(4 Q0    ( .2 4%8FQ#P2_:P# !CK)@ 1
M          "  0    !C9VYX+3(P,C(Q,C,Q+FAT;5!+ 0(4 Q0    ( .2
M4%8V2-D>EQL  '\[ 0 1              "  2RM P!C9VYX+3(P,C(Q,C,Q
M+GAS9%!+ 0(4 Q0    ( .2 4%8X3QJW,2\  $'@ 0 5              "
M ?+( P!C9VYX+3(P,C(Q,C,Q7V-A;"YX;6Q02P$"% ,4    " #D@%!6N!Q9
M8%%_  "^FP4 %0              @ %6^ , 8V=N>"TR,#(R,3(S,5]D968N
M>&UL4$L! A0#%     @ Y(!05B#X) .H9 ( =\X" !0              ( !
MVG<$ &-G;G@M,C R,C$R,S%?9S$N:G!G4$L! A0#%     @ Y(!05MN!:..G
M? $ !J(/ !4              ( !M-P& &-G;G@M,C R,C$R,S%?;&%B+GAM
M;%!+ 0(4 Q0    ( .2 4%;0O!RLPN<   Z."@ 5              "  8Y9
M" !C9VYX+3(P,C(Q,C,Q7W!R92YX;6Q02P$"% ,4    " #D@%!6@J'F4)\'
M  "AA   &P              @ &#00D 8V=N>"TR,#(R,3(S,7AE>&AI8FET
M,C$N:'1M4$L! A0#%     @ Y(!05H7/PM5B P  F@H  !P
M ( !6TD) &-G;G@M,C R,C$R,S%X97AH:6)I=#(S,2YH=&U02P$"% ,4
M" #D@%!6#M^,/%$(  "A.   '               @ 'W3 D 8V=N>"TR,#(R
M,3(S,7AE>&AI8FET,S$Q+FAT;5!+ 0(4 Q0    ( .2 4%91UO;@7P@  .<X
M   <              "  8)5"0!C9VYX+3(P,C(Q,C,Q>&5X:&EB:70S,3(N
M:'1M4$L! A0#%     @ Y(!05D5QS&]W!0  H1\  !P              ( !
M&UX) &-G;G@M,C R,C$R,S%X97AH:6)I=#,R,2YH=&U02P$"% ,4    " #D
M@%!611N8SG8%  ">'P  '               @ ',8PD 8V=N>"TR,#(R,3(S
F,7AE>&AI8FET,S(R+FAT;5!+!08     #0 - (<#  !\:0D    !

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